Bagaimana saya melakukan ini? Saya membuat pengguna tanpa direktori home dan sekarang saya ingin membuatnya. Bukan hanya folder bernama new_user, saya ingin direktori home default dengan semua folder dan file tersembunyi, dll.
command-line
home-directory
Jo Rijo
sumber
sumber
su new_user
: Dsudo -i -u new_user
tetapi tidak berhasil. Saya pikir kita perlu "mensimulasikan login X" ... tidak tahu bagaimana melakukannya.Jawaban:
Gunakan yang berikut (sebagai root, atau dengan sudo jika tidak root):
Agar ini berfungsi, folder
/home/username
tidak boleh ada.Untuk folder terkait X (Desktop, Unduhan, dll), Anda harus masuk dalam lingkungan grafis; mereka akan dibuat secara otomatis saat pertama kali Anda login.
sumber
ls -l /home
. Saya menemukan bahwa direktori baru dapat dibaca oleh semua pengguna lain, jadi saya menghapus izin itu denganchmod go-r-x /home/username
.Sub direktori (Dokumen, Unduhan, dll ...) secara otomatis dibuat ketika pengguna pertama kali masuk melalui GNOME, asalkan direktori home dibuat dengan izin yang benar. Ini sebuah demonstrasi:
Anda dapat memeriksa apakah direktori home pengguna diatur dengan benar dengan memeriksa entri
/etc/passwd
. Secara default, Anda harus melihat direktori home yang disetel ke/home/testinguser
:Jika Anda tidak melihat direktori home di
/home/testinguser
sana, Anda harus menjalankan perintahsudo usermod -d /home/testinguser testinguser
untuk memperbaruinya, walaupun Anda tidak perlu menggunakan perintah ini karena harus diset secara default (sesuai denganuseradd
halaman manual).Saya kemudian keluar dari akun saya, dan masuk kembali dengan
testinguser
, dan di sini adalah subdirektori yang dibuat secara otomatis:Saya tidak perlu menyalin konten
/etc/skel
.Jika memungkinkan, dapatkah Anda mencoba mengikuti langkah-langkah ini, membuat pengguna baru lainnya? Setelah selesai, Anda dapat menghapus pengguna baru ini dengan
sudo deluser testinguser && sudo rm -r /home/testinguser
.Jika semua ini tidak bekerja dengan Anda, maka saya kira itu bug.
sumber
useradd
, direktori home default untuk pengguna baru tidak diatur secara otomatis ke/home/username
. Jadi, ypu pertama harus yakin tentang itu.useradd
: "useradd akan menggunakan direktori dasar yang ditentukan oleh variabel HOME di/etc/default/useradd
, atau/home
secara default". Variabel HOME dalam/etc/default/useradd
tidak didefinisikan secara default, sehingga useradd akan selalu digunakan/home
. Bagaimanapun, saya akan mengedit jawaban saya dan memindahkan bagian untuk memeriksa/etc/passwd
./bin/sh
di baris pengguna/etc/passwd
Anda harus menambahkan shell untuk pengguna itu, misalnya shell default denganusermod -s /bin/sh testuser
UPDATE: Solusinya rusak dan tidak bekerja untuk saya juga.
Jika Anda ingin membuat direktori home pengguna jika tidak ada, maka jalankan
useradd
perintah dengan-m
flag. Ini akan menyalin semua file dari/etc/skel
direktori.Anda mungkin perlu mengkonfigurasi pengaturan untuk sistem Anda. Menurut halaman manual:
dan selanjutnya menunjukkan:
sumber
-m
benderanya saat membuat pengguna baru, dan itu tidak berhasil; itu hanya menyalin file kerangka./etc/skel
tidak membuat subdirektori di direktori home. Juga,useradd -m
digunakan saat membuat pengguna baru, bukan saat pengguna sudah ditambahkan.Jika Anda membuat pengguna baru dengan
adduser
perintah, Anda tidak perlu membuat direktori home untuk pengguna baru. Direktori rumah dinamai dengan nama pengguna dalam/home
direktori, dengan subdirektori berikut: Desktop, Unduhan, Dokumen, Musik, Gambar, Video (dan lainnya), untuk pengguna baru akan dibuat secara otomatis.Jika Anda membuat pengguna baru dengan
useradd
perintah, maka jalankan perintah berikut di terminal:untuk mengedit
/etc/passwd
file sebagai root (ini adalah langkah paling penting). Temukan baris dengan nama pengguna baru dan atur direktori home default untuknya seperti ini:Pada baris ini Anda juga dapat menambahkan nama asli untuk pengguna baru, atau mengatur shell default. Sesuatu seperti ini:
Hati-hati, jangan lakukan perubahan lain.
Setelah Anda menyimpan file, sebelum keluar dari akun root, jalankan perintah berikut:
Setelah semua ini folder rumah untuk pengguna baru akan secara otomatis diisi setelah login pertama.
Lihat juga: Cara membuat folder beranda pengguna setelah pembuatan akun?
sumber
/etc/passwd
(jika belum ada). Setelah pengguna masuk, folder rumah akan secara otomatis diisi dengan subdirektori tersebut. Namun, semua ini diurus adalah seseorang menambahkan pengguna menggunakanadduser
, bukanuseradd
.adduser
: home folder yang otomatis dibuat. Dan memang, folder rumah akan secara otomatis diisi setelah login pertama.cp /etc/skel/* /home/new_username
? Juga, adakah alasan mengapa Anda menggunakan duachown
perintah berurutan ?Yang Anda butuhkan adalah folder home untuk membuatnya bekerja. Sebagai root,
Masuk dengan pertama kali harus membuat semua file yang diperlukan, yang sepertinya adalah:
sumber