Kapan su dan sudo menggunakan kata sandi yang berbeda?

12

Saya dapat menjalankan apa pun menggunakan sudo; kata sandi saya diterima. Tetapi setiap kali saya mencoba melakukan sudari shell, gagal dengan:

su: kata sandi salah

Apa masalahnya?

Lazer
sumber

Jawaban:

22

suberarti pengguna pengganti dan jika dipanggil tanpa argumen Anda akan menjadi superuser. Karena itu Anda harus memasukkan kata sandi root.

Ini adalah semacam tidak berguna jika banyak orang perlu menggunakan perintah untuk administrasi sistem atau hal serupa dengan hak pengguna yang diperpanjang. Anda hanya tidak ingin orang memiliki hak tanpa batas dengan membagikan semua kata sandi root yang sama.

Solusi untuk masalah semacam ini adalah sudo(" lakukan pengguna pengganti "). Ini akan memungkinkan Anda menentukan perintah yang dapat dipanggil seseorang dan menentukan izinnya. Untuk sudoAnda tidak harus memasukkan kata sandi root, tetapi kata sandi pengguna yang mencoba menjalankan perintah sudo.

Beberapa distribusi memiliki pengguna root dinonaktifkan karena alasan keamanan. Ini bisa menjadi salah satu penjelasan mengapa Anda tidak dapat menggunakan su. Dalam hal itu, untuk mendapatkan sebuah shell dengan hak akses root gunakan sudo -s;-)

echox
sumber
5
Disarankan untuk melakukan itu sedikit terakhir di sudo su -mana tanda hubung berarti mengatur lingkungan sesuai dengan profil login pengguna (dalam hal ini root). Ini biasanya memberi sedikit peningkatan dalam keamanan PATH tetapi masih tidak melindungiecho hi > /dev/my_critical_filesystem
msw
aaah lupa yang ini :-) thx untuk tambahan!
echox
@echox: Lalu, apakah ada perbedaan antara $ scriptdan $ sudo script? Pengguna sama dalam kedua kasus.
Lazer
sudo allows a permitted user to execute a command as the superuser or another user, as specified in the sudoers file.- dari manusia sudo. Biasanya skrip akan dipanggil dengan hak akses root. Itulah bedanya.
echox
1
@ Chris: sayangnya, itu diperlukan jika Anda ingin mewarisi seluruh lingkungan pengguna root, termasuk PATH-nya. Kebetulan, saya baru tahu bahwa "sudo -s", yang saya komentari di atas tetapi sekarang telah dihapus, lebih setara dengan "sudo su", tanpa tanda hubung: tidak ada perubahan ke CWD, tidak ada perubahan ke PATH.
Warren Young
7

Perintah su tanpa opsi, akan default untuk memungkinkan Anda menjadi pengguna root. Itu tidak meminta kata sandi Anda, tetapi kata sandi root.

Perintah sudo selalu menanyakan kata sandi Anda.

Matthew Brannigan
sumber
2
sebagai catatan tambahan, jika Anda menggunakan Ubuntu, secara default kata sandi root terkunci, jadi Anda mungkin tidak tahu kata sandi root help.ubuntu.com/community/RootSudo
phunehehe
3
"Perintah sudo selalu menanyakan kata sandi Anda." Sebenarnya itu bisa dikonfigurasi. Ini juga dapat dikonfigurasikan untuk meminta kata sandi root atau kata sandi pengguna target (atau tanpa kata sandi sama sekali).
sepp2k