Saya membuat beberapa pengguna dengan:
$ useradd john
dan saya lupa menentukan parameter -m
untuk membuat direktori home dan memiliki file kerangka disalin ke setiap pengguna. sekarang saya ingin melakukan itu, dan saya tidak ingin membuat ulang semua pengguna (pasti ada cara yang lebih mudah). jadi, apakah ada cara untuk membuat direktori pengguna dan menyalin file kerangka?
Saya berpikir tentang membuat direktori, mengunyahnya ke pengguna yang sesuai, menyalin semua file kerangka dan mengunyahnya ke pengguna yang sesuai. tetapi jika ada perintah seperti useradd -m
itu tidak membuat pengguna lagi, tetapi membuat direktori, itu akan lebih baik.
Jawaban:
Ini mungkin terdengar seperti ide yang konyol, tetapi jika pengguna tidak benar-benar melakukan apa pun, Anda dapat melakukan:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Kemudian edit /tmp/users.list untuk hanya berisi pengguna yang Anda inginkan. Kemudian lakukan:
Namun, banyak distribusi berbasis Redhat akan membuat Anda direktori home baru ketika Anda pertama kali login, asalkan ditentukan di / etc / passwd di mana direktori seharusnya berada.
Untuk mengujinya, lakukan "su -" dan lihat apakah itu "hal yang benar". Jika tidak, skrip di atas akan berfungsi dengan baik, saya pikir.
sumber
for i in $(awk -F: '{print $1 }' /etc/passwd)
Anda juga bisa menggunakannya
mkhomedir_helper
sumber
sudo /sbin/mkhomedir_helper dka
? yang/home
direktori milikroot
pengguna, dan jadi saya akan membayangkan salah satu harus menjadi root untuk membuat subdirektori daripadanya.Anda harus membuat direktori pengguna secara manual. Ini membutuhkan tiga langkah:
/etc/passwd
, biasanya sudah ada entri / home / login.Dan akhirnya mengatur hak akses:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
BTW: Saya selalu melewatkan
-m
opsi untuk useradd juga. Setidaknya sistem berbasis Debian harus memilikiadduser
perintah, yang saya sarankan di atas useradd. Jika Anda melewatkan-m
opsi itu mungkin juga layak dipertimbangkandeluser
dan kemudian menciptakan kembali pengguna dengan opsi yang tepat.Sunting: Ditambahkan
-r
untuk menyalin juga direktori.sumber
public_html
kebutuhan setidaknyax
set bit, saya akan merekomendasikanchmod 0711
pada setiap rumah,public_html
dan direktori yang sama sebagai default.cp -r /etc/skel/.*
kambuh kembali ke / etc / dan salin semua data dari sini (/etc/skel/.* cocok dengan / etc / skel / .. Saya harapkan). Solusi dari superuser.com/a/61619/22153 tampaknya berhasil: cp -r / etc / skel / home / user (/ home / user tidak boleh ada sebelum menjalankan perintah)*
dengan.
(dot). Jadi..
cocok. Apakah saya benar? Banyak shell menonaktifkan ini per default, karena perilaku tersebut. Shell mana yang Anda gunakan?Itu harus melakukan trik saya percaya
sumber
usermod: no changes
. dan direktori tidak dibuat. itu tidak berfungsi baik dengan-m
opsi.Anda dapat menggunakan sesuatu seperti pam_mkhomedir untuk mencegah hal ini menjadi masalah dengan pengguna mana pun di masa mendatang. pam_mkhomedir adalah modul PAM yang secara otomatis membuat direktori home pengguna saat login jika tidak ada, dan mengisinya dengan file dari / etc / skel (atau direktori skel apa pun yang Anda tentukan).
Ini juga merupakan pendekatan yang dapat diskalakan karena akan terus menyelesaikan masalah ini jika Anda pernah mengalihkan repositori pengguna Anda ke layanan direktori seperti LDAP di masa mendatang.
sumber
Dalam kasus saya, volume rumah rusak dan saya memutuskan untuk membangun kembali dari awal karena tidak banyak data yang terlibat tetapi saya ingin menyimpan informasi login pengguna, jadi saya membuat kembali direktori home secara manual dengan skrip ini:
sumber
Jika Anda mengedit
/etc/login.defs
mengandungmaka direktori home akan secara otomatis dibuat untuk setiap pengguna di masa depan, kecuali jika Anda memberi tahu sistem untuk tidak melakukannya.
Opsi lain adalah menggunakan PAM untuk login, dan menggunakan modul pam_mkhomedir untuk secara otomatis membuat homedir pada login pertama.
sumber
Langkah pertama saya setelah melakukan
useradd
adalah untuksu - <user>
.Membuat direktori home, menyalin kerangka, dll - setidaknya pada kotak CentOS 4 saya paling sering melakukannya.
sumber
Login dengan john pengguna dan tulis dari shell:
Itu dia! Jangan gunakan sudo atau su, Anda tidak perlu akses root untuk membuat beberapa direktori. Dari akun root, Anda dapat menggunakan:
Dengan begitu, Anda akan menjalankan perintah sebagai john, yang dapat berguna jika Anda melakukan kesalahan dengan lebih dari satu pengguna.
sumber
Inilah yang dilakukan
mkhomedir_helper $USERNAME
perintah.sumber
Anda cukup mengedit / etc / passwd. Bidang kedua ke terakhir adalah direktori home pengguna.
sumber
atau
dan baca
;)
sumber