Perbedaan utama antara perintah-perintah ini adalah cara mereka membatasi akses ke fungsinya.
su
(yang berarti "pengguna pengganti" atau "pengguna beralih") - tidak persis seperti itu, ia memulai instance shell lain dengan hak istimewa dari pengguna target. Untuk memastikan Anda memiliki hak untuk melakukan itu, ia meminta Anda kata sandi pengguna target . Jadi, untuk menjadi root, Anda perlu tahu kata sandi root. Jika ada beberapa pengguna di mesin Anda yang perlu menjalankan perintah sebagai root, mereka semua harus tahu kata sandi root - perhatikan bahwa kata sandi itu akan sama. Jika Anda perlu mencabut izin admin dari salah satu pengguna, Anda perlu mengubah kata sandi root dan hanya memberitahukannya kepada orang-orang yang perlu menjaga akses tetap berantakan.
sudo
(hmm ... apa mnemoniknya? Super-User-DO?) benar-benar berbeda. Ia menggunakan file config (/ etc / sudoers) yang mencantumkan pengguna mana yang memiliki hak untuk tindakan tertentu (jalankan perintah sebagai root, dll.) Ketika dipanggil, ia meminta kata sandi pengguna yang memulai - untuk memastikan orang di terminal adalah "joe" yang sama dengan yang terdaftar di /etc/sudoers
. Untuk mencabut hak admin dari seseorang, Anda hanya perlu mengedit file konfigurasi (atau menghapus pengguna dari grup yang tercantum dalam konfigurasi itu). Ini menghasilkan pengelolaan hak istimewa yang jauh lebih bersih.
Sebagai akibatnya, di banyak sistem berbasis Debian root
pengguna tidak memiliki kata sandi - artinya tidak mungkin untuk login sebagai root secara langsung.
Juga, /etc/sudoers
memungkinkan untuk menentukan beberapa opsi tambahan - yaitu pengguna X hanya dapat menjalankan program Y dll.
Sering digunakan sudo su
kombinasi bekerja sebagai berikut: pertama sudo
meminta Anda untuk Anda password, dan, jika Anda diperbolehkan untuk melakukannya, memanggil perintah berikutnya ( su
) sebagai super-user. Karena su
diminta oleh root
, itu tidak mengharuskan Anda untuk memasukkan kata sandi pengguna target. Jadi, sudo su
memungkinkan Anda untuk membuka shell sebagai pengguna lain (termasuk root), jika Anda diizinkan akses super-pengguna oleh /etc/sudoers
file.
su user
untuk login dari shell yang tidak terpercaya, tetapisu - user
. Lihat unix.stackexchange.com/q/7013/8250