Aku bisa melakukan su
dengan su <username>
dan meminta password saya. Apakah ada parameter kata sandi untuk su
sehingga saya tidak akan diminta kata sandi?
misalnya su <username> -p <password>
superuser
sini, superuser.com/questions/67765/…
Aku bisa melakukan su
dengan su <username>
dan meminta password saya. Apakah ada parameter kata sandi untuk su
sehingga saya tidak akan diminta kata sandi?
misalnya su <username> -p <password>
superuser
sini, superuser.com/questions/67765/…
Jawaban:
Jika Anda ingin menulis skrip yang berjalan sebagai pengguna yang berbeda, ini berfungsi, meskipun ia mengeluarkan kata "kata sandi" tanpa baris baru ke standar
su - username <<!
enterpasswordhere
enter commands to run as the new user
!
jika Anda memiliki pengguna bernama fred dengan kata sandi 1234 dan ingin mendapatkan ls direktori home fred sebagai fred, tanpa string kata sandi ditampilkan, akan terlihat seperti
su - fred <<! >/dev/null 2>&1
1234
whoami > /dev/tty
ls > /dev/tty
!
su: must be run from a terminal
.
Saya percaya, tidak ada dan itu bukan ide yang bagus. Inilah alasannya:
Jika Anda menulis kata sandi dalam perintah seperti su <username> -p <password>
, kata sandi itu akan disimpan dalam teks biasa di riwayat bash Anda. Ini tentu merupakan masalah keamanan besar.
Jika Anda perlu menjalankan perintah dengan su
(atau sudo
) secara otomatis, tulis sebuah shellscript yang berisi perintah-perintah tersebut tanpa su
atau sudo
dan jalankansu <username> script.sh
su root script
masih harus memasukkan passwd.
echo <passwd> | sudo -S <command-line>
Meskipun tidak aman, tetapi berhasil.