Tidak dapat masuk ke akun pengguna yang baru dibuat

25

Mencoba mengalihkan akun ke akun saya yang baru dibuat, saya mendapatkan layar hitam dan kemudian membawa saya kembali ke layar masuk utama setelah memasukkan kata sandi yang benar.

Setelah masuk ke akun saya yang sudah ada sebelumnya saya mendapatkan:

"System Program Problem Detected"

Details:

Executable path /usr/bin/Xorg

Package: xserver-xorg-core 2:1.11.4-0ubuntu10.1

Details: Crash
... (tons more, but no way to copy paste or save)

Ketika saya mencoba su

su -l penner

Saya mendapat:

No directory, logging in with HOME=/

Saya secara manual membuat direktori home dan kesalahan ini hilang tetapi masih tidak berhasil dengan login. Tampaknya ada yang salah dengan pembuatan pengguna? Bagaimana saya bisa memperbaikinya?

penner
sumber
Bagaimana Anda membuat akun pengguna? Apakah Anda melakukannya dari gui, atau dari baris perintah? Jika Anda melakukannya dari baris perintah, Anda harus menyadari bahwa adduser dan useradd melakukan hal yang sangat berbeda. Juga, sepertinya file dari / etc / skel tidak disalin. Bisakah Anda tolong ls -al di direktori home Anda dan di direktori user baru sehingga kita bisa melihat apa yang terjadi?
SuperMatt

Jawaban:

31

Jika Anda membuat akun pengguna useradd, Anda harus mengatur semuanya untuk itu secara manual. Inilah sebabnya, ketika membuat akun pengguna dari command-line, disarankan untuk digunakan adduserdi Ubuntu (dan Debian, dan sistem berbasis Debian lainnya) sebagai gantinya. Anda mungkin hanya ingin menghapus pengguna dengan userdelatau deluserdan membuatnya kembali adduser. Jika tidak...

Memperbaiki Lokasi Direktori Rumah

Jika Anda ingin menyimpan akun pengguna dan memperbaiki masalah, maka Anda perlu melihat:

  • nama direktori home tempat akun pengguna sebenarnya dikonfigurasi untuk
  • nama direktori yang sebenarnya Anda buat

Ini harus persis sama. Pesan kesalahan yang Anda terima su -l pennermemberi tahu Anda bahwa mereka tidak sama.

Untuk memeriksa direktori home akun pengguna sebenarnya dikonfigurasi untuk, jalankan perintah ini (lihat man 5 passwddan man grepuntuk informasi lebih lanjut):

grep penner /etc/passwd

Anda akan melihat garis seperti ini:

penner:x:1000:1000:Eliah Kagan,,,:/home/penner:/bin/bash

Yaitu, bidang terpisah keenam :(setelah kelima :) berisi direktori home. Jika tidak /home/penner, seharusnya begitu. Jika direktori yang Anda buat bukan untuk pengguna /home/penner, itu juga harus. Jika kedua direktori itu sama tetapi tidak ada yang sama /home/penner, maka secara teoritis mungkin bisa berfungsi, tetapi Anda harus membuat keduanya /home/penner, karena banyak perangkat lunak mengasumsikan bahwa rootdirektori home semua bukan pengguna adalah ./home/username

Anda dapat mengubah pennerdirektori home menjadi /home/pennerdengan menjalankan perintah ini:

sudo usermod -d /home/penner penner

Memastikan itu adalah Direktori, dan Pengguna Memiliki Akses

Jika (atau sekali) nama keduanya /home/penner, Anda juga harus memastikan bahwa pengguna memiliki akses ke direktori home mereka sendiri. Menjalankan:

ls -ld /home/penner

Anda akan melihat sesuatu yang terlihat seperti ini (meskipun tanggal dan waktu akan berbeda):

drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner

Jika alih-alih drwxr-xr-x, Anda memiliki sesuatu yang diawali dengan -alih - alih d, maka Anda membuat file daripada direktori. Hapus file dan buatlah direktori di sana.

Jika alih-alih pertama kali pennerAnda memiliki sesuatu yang lain, maka pengguna tidak memiliki direktori home mereka, jadi buatlah untuk memilikinya:

sudo chown penner /home/penner
  • Lihat man chownuntuk informasi lebih lanjut.

Jika alih-alih drwxr-xr-xada tanda hubung dalam tiga karakter berikutnya setelah d, maka pengguna tidak memiliki akses penuh di sana. Perbaiki itu sebagai berikut:

sudo chmod u+rwx /home/penner
  • Lihat man chmoduntuk informasi lebih lanjut.

( pennermampu menjalankan perintah ini jika mereka memiliki direktori home mereka, jadi jika Anda mau, Anda dapat menjalankan ini sebagai sudo -u penner u+rwx /home/penner:)

Memastikan Pengguna Lain Tidak Memiliki Akses Menulis Selimut

Jika alih-alih drwxr-xr-x, ada ws alih-alih -dalam enam huruf terakhir, maka pengguna di samping pennermungkin memiliki akses tulis ke pennerdirektori home. Ini berbahaya (kecuali jika Anda benar - benar tahu apa yang Anda lakukan dan menginginkannya seperti ini dan telah mengatur semuanya agar tidak menjadi masalah). Untuk memperbaikinya:

sudo chmod -R go-w /home/penner

Default Lainnya

Ada beberapa perubahan lain yang mungkin ingin Anda lakukan. Secara default di Ubuntu (yaitu, jika Anda membuat akun pengguna dengan adduseratau dengan alat grafis, yang tidak Anda lakukan):

  1. Direktori rumah memiliki izin baca dan tulis untuk semua orang, bukan hanya pengguna yang memilikinya. Pengguna dapat mengubah ini, baik untuk direktori home keseluruhan atau file dan subdirektori di dalamnya. Tetapi jika Anda menginginkan default ini, dan Anda tidak memiliki yang kedua dan ketiga rdan xdalam drwxr-xr-x, jalankan:

    sudo chmod 755 /home/penner
    

    ( pennermampu menjalankan perintah ini jika mereka memiliki direktori home mereka, jadi jika Anda mau, Anda dapat menjalankan ini sebagai sudo -u penner chmod 755 /home/penner:)

  2. Setiap pengguna memiliki grup sendiri, dengan nama yang sama dengan pengguna, dan ini adalah grup utama pengguna. Direktori rumah mereka dimiliki oleh grup ini. Itulah arti yang kedua pennerdi drwxr-xr-x 43 penner penner 4096 2012-07-03 06:41 /home/penner. Tidak masalah untuk memutuskan dengan default ini, jika Anda tahu apa yang Anda lakukan . Tetapi jika itu bukan niat Anda untuk melakukan hal-hal yang berbeda, Anda harus memastikan pennersudah diatur dengan cara ini, karena beberapa kemungkinan identitas kelompok utama untuk pengguna, atau pemilik grup di direktori home pengguna, dapat menyebabkan masalah keamanan.

    Lari groups penner. (Lihat man groupsuntuk informasi lebih lanjut.) Anda akan melihat sesuatu seperti ini:

    penner : penner adm dialout cdrom plugdev lpadmin sambashare
    

    Jangan khawatir jika tidak seperti itu. Saya akan segera melakukannya. Sebaliknya, lihat kata pertama setelah :. Itulah nama grup utama pengguna. Dengan asumsi Anda menginginkannya penner, pastikan itu. Jika tidak, ubah:

    sudo usermod -g penner penner
    

    Jika Anda mendapatkan kesalahan dengan mengatakan bahwa grup pennertersebut tidak ada, maka Anda harus membuatnya dengan perintah ini (dan kemudian jalankan kembali perintah di atas):

    sudo addgroup penner
    
    • Lihat man addgroupuntuk informasi lebih lanjut. (Jika Anda mau, Anda dapat menggunakan groupaddperintah untuk membuat grup sebagai alternatif .)
  3. Ketika Anda berlari groups penner, Anda mungkin mendapatkan daftar grup yang jauh lebih pendek daripada saya penner : penner adm dialout cdrom plugdev lpadmin sambashare. Untuk pengguna desktop, adm, dialout, cdrom, plugdev, lpadmin, dan sambasharememberikan kemampuan yang pengguna desktop umumnya harus memiliki. Karena itu, kecuali Anda memiliki alasan untuk melakukan sebaliknya, pennersebaiknya berada dalam grup ini. Namun, ini bukan kelompok utama, jadi mereka diatur secara berbeda. Seandainya pennertidak ada dalam salah satu dari kelompok ini dan Anda ingin pennerberada di semua dari mereka, jalankan perintah ini:

    sudo usermod -a -G adm,dialout,plugdev,lpadmin,sambashare penner
    

    Jika Anda tertarik, inilah yang dimaksudkan semua grup itu:

    (Sumber: Keistimewaan , dalam wiki dokumentasi Ubuntu.)

Menjadikan Pengguna Administrator

Jika Anda tidak ingin pennermenjadi administrator, Anda mungkin tidak perlu melakukan hal lain. Anda dapat memeriksa apakah pennerseorang administrator dengan groups penner. Jika tidak adminjuga tidak sudoterdaftar, maka pennerbukan administrator.

Jika Anda ingin pennermenjadi administrator, tambahkan pennerke grup mana saja yang ada. (Anda bisa menambahkan pennerkeduanya, jika keduanya ada.) Anda dapat melakukannya dengan menjalankan kedua perintah ini secara terpisah - jika salah satu berhasil, Anda telah membuat penneradministrator:

sudo usermod -a -G admin penner
sudo usermod -a -G sudo penner
  • Alasannya ada dua kelompok adalah bahwa, sebelum Ubuntu 12,04 LTS, administrator berada dalam admingrup. Dimulai dengan Ubuntu 12,04 LTS, administrator berada di sudogrup. Tetapi jika sistem 12,04 LTS Anda ditingkatkan dari rilis sebelumnya (dan ini harus berlaku untuk rilis Ubuntu nanti, seperti 12.10 ketika keluar, yang ditingkatkan dari Ubuntu 11.10 atau sebelumnya), maka untuk kompatibilitas, administrator adalah anggota dari keduanya sudodan admin. Secara umum, jika salah satu dari kelompok-kelompok ini tidak memberikan kemampuan administratif, itu hanya tidak ada, jadi menjalankan kedua perintah di atas (secara terpisah, bukan sebagai sudo usermod -a -G admin,sudo penner) umumnya merupakan cara yang aman dan efektif untuk membuat penneradministrator.
Eliah Kagan
sumber
Terima kasih! Sesuatu seperti adduser itu bagus tetapi saya juga ingin tahu bagaimana melakukan hal-hal secara manual. Jawaban yang sangat teliti! Saya sangat menghargai itu.
Penner
sudo chmod u+a /home/pennermemberikan kesalahan pada Ubuntu 16.04 (Xenial). Apakah sudo chmod u+rw /home/pennerpengganti yang tepat?
Nickolai Leschov
@NickolaiLeschov Maaf tentang itu - dan terima kasih telah menunjukkan kesalahannya! Saya sudah memperbaiki perintah.
Eliah Kagan
ini hanya bodoh, mengapa tidak menghapusnya useradd? menjaga kode rusak acak
dashesy
1
@ Dashes Terima kasih - Saya tidak menyadari bahwa menggunakan useraddmenyebabkan masalah pada Ubuntu yang tidak menyebabkan pada sistem lain. Pada sistem 16.04 saya, /etc/default/useraddmemiliki (sebagai satu-satunya baris uncommented) SHELL=/bin/sh, dan useradd (8) tampaknya mengatakan bahwa SHELLnilai di sana digunakan jika -s/ --shellflag tidak diberikan, tetapi pada sistem 16.04 saya itu tidak terjadi. Saya salah mengatakan dengan tergesa-gesa bahwa Ubuntu useraddtidak rusak. Sekarang saya tidak begitu yakin. Mungkin ada alasan bagus untuk perbedaan ini antara Fedora dan Debian (dan Ubuntu) ... tapi saya telah menghapus komentar saya agar tidak menyesatkan orang.
Eliah Kagan
0

Ini sebagian besar terjadi ketika Anda membuat pengguna tanpa membuat direktori home untuk pengguna. Ini bisa diselesaikan dengan menggunakan perintah ini saat membuat pengguna

useradd -m the_username

Bendera -m adalah apa yang membuat direktori home untuk pengguna. Setelah membuat pengguna memeriksa apakah direktori home ada untuk pengguna itu dengan melakukan

ls /home

Jika Anda dapat melihat nama pengguna terdaftar di sana, maka hal terakhir yang harus dilakukan adalah menetapkan kata sandi kepada pengguna itu

passwd the_username

Anda sekarang dapat masuk dengan nama pengguna dan kata sandi itu

macleash
sumber
-1

ctrl + alt + f1 dan login di sana dan jalankan

sudo chown -R $ USER: $ USER $ HOME

lalu tekan ctrl + alt + f7 dan coba masuk

Itu akan berhasil

Shameer Theen H
sumber