Berikut kode skrip yang saya gunakan sekarang:
getent group $MYGROUP
if [ $? -ne 0 ] ; then
sudo su -c "groupadd $MYGROUP"
fi
sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
Pendekatan ini bekerja dengan baik pada openSuse. Tetapi ada beberapa masalah dengan akun pengguna yang dibuatnya di Ubuntu jadi saya mencari bantuan di sini.
- terminal prompt tidak disetel (
echo $PS1
tidak menghasilkan apa-apa) - tombol panah dan tombol tab tidak berfungsi dengan benar di terminal
- sepertinya kata sandi tidak berfungsi (walaupun saya masih belum jelas apa masalah ini)
- hak / etc / sudoers yang ditetapkan untuk pengguna baru ini tidak dihormati
Jika sebaliknya saya secara manual membuat pengguna dengan adduser
(bukan useradd) saya tidak memiliki masalah ini di Ubuntu. Tapi saya tidak bisa menggunakan adduser
di openSuse (afaik). Oleh karena itu, saya memerlukan skrip non-Debian-eksklusif atau metode menambahkan akun pengguna melalui skrip bash saya yang berfungsi di Ubuntu (dan tidak berhenti bekerja pada distro lain).
Akhirnya, saya ingin memahami perbedaan antara adduser
dan useradd
. Sebagai contoh, saya ingin tahu direktori kerangka mana yang digunakan oleh adduser
karena itu mungkin alasannya useradd
tidak berfungsi seperti yang diharapkan (karena saya baru saja menerima default).
Terima kasih
man useradd
): useradd adalah utilitas tingkat rendah untuk menambahkan pengguna. Di Debian, administrator biasanya menggunakan adduser (8).sudo su -c "cmd arg1 arg2"
setara dengansudo cmd arg1 arg2
.sudo su -c "cmd arg1 arg2"
agar berfungsi di mana pun saya membutuhkannya untuk berfungsi.adduser
adalah skrip perl yang panjangnya lebih dari 1000 baris, jadi untuk perbedaannya Anda bisa melihat skripnya.adduser
tetapi saya tidak tahu perl. Jadi itu bukan pendekatan yang baik untuk saya.Jawaban:
Solusi saya diberikan di sini: /unix/82923/proper-way-to-add-a-user-account-via-bash-script oleh Ulrich Schwarz dan Joseph R .. Hal utama yang harus saya lakukan adalah menambah perintah
-s /bin/bash
saya yang adauseradd
dan menghapus-p password
yang mengharapkan kata sandi terenkripsi.Kemudian lakukan ini:
sumber
echo mynewuser:password | sudo chpasswd
bekerja juga.Ini akan bekerja
sumber
skrip saya yang secara otomatis membuat akun layanan dengan login kunci ssh dan tanpa kata sandi
sumber
Saya kira Anda dapat menggunakan kondisi dalam skrip Anda, seperti
(tidak dapat memverifikasi apakah file
/etc/issue
tersebut ada di OpenSUSE, jika tidak, Anda dapat menempatkan kondisi pada keberadaan file seperti itu).sumber
adduser
denganif command -v adduser >/dev/null; then
atau suka? Itulah satu-satunya hal yang penting dan bukan distribusi yang mendasarinya. Juga, ada distribusi lain selain Debian / Ubuntu dan OpenSUSE.