Saya membuat skrip bash yang mengharuskan menjalankan perintah sebagai pengguna tertentu. Akibatnya saya menggunakan perintah:
runuser
Saya telah menguji skrip ini dan berfungsi dengan baik di Ubuntu Server 14.10. Namun, ketika mengujinya pada 14,04 dan 12 saya mengalami kesalahan berikut:
runuser: command not found
Ini terjadi setiap kali perintah runuser digunakan.
Saya menggunakan perintah berikut untuk membuat pengguna baru:
adduser --no-create-home --home "/home/$homedir" --disabled-password --gecos "$realname" "$uname" ; usermod -p "$passwd" "$uname"
Apakah ada sesuatu yang spesifik yang perlu ditentukan saat membuat pengguna baru? Apakah ada ketergantungan tertentu yang hilang?
Suntingan Untuk Pertanyaan:
Keluaran dari echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Keluaran dari ls -l /sbin/runuser
ls: cannot access /sbin/runuser: No such file or directory
Alasan saya ingin menggunakan runuser vs su adalah karena hal berikut:
Saat menggunakan runuser, saya dapat menjalankan perintah berikut:
runuser user -c 'cd'
runuser user -c 'wget http://file.com'
Sedangkan dengan su saya harus merangkai perintah seperti ini:
su user -c 'cd; wget http://file.com'
Jawaban yang Diterima:
runuser
adalah perintah terbaru, muncul di util-linux 2.23. Ubuntu 14.04 mengirimkan util-linux 2.20, jadi ia belum memiliki perintah ini.
runuser
tidak terlalu berguna. Cukup gunakan su
sebagai gantinya. Perhatikan bahwa perintah runuser user -c 'cd'
sebenarnya tidak melakukan apa pun — cakupan cd
tidak meluas ke panggilan berikutnya ke runuser
. Anda harus menggunakan runuser user -c 'cd && wget http://file.com'
omong-omong. Gunakan su user -c 'cd && wget http://file.com'
sebagai gantinya.