it-swarm.asia

Apa perbedaan antara perintah "su -s" dan "Sudo -s"?

Apa perbedaan antara dua perintah pengguna super, su -s dan Sudo -s?

Mereka berdua memberikan Shell dengan akses ke akun pengguna super.

23
Callum

Dalam praktiknya, mereka berdua akan menjadikan Anda superuser. Namun, mereka melakukan hal yang sedikit berbeda, dengan cara yang sedikit berbeda.

Pertama, su - mengalihkan Anda ke Shell login, sedangkan Sudo -s tidak. Dalam praktiknya, ini sering berarti bahwa variabel lingkungan Anda tidak akan beralih ke root untuk Sudo -s. Perhatikan bahwa Anda dapat menjalankan hanya su ke tidak mendapatkan Shell login, atau Sudo -i untuk mendapatkan Shell login [tidak dalam semua versi].

Kedua, su dan su - beralih ke pengguna baru dengan meminta Anda untuk mengautentikasi sebagai pengguna baru. Sudo -s dan Sudo -i (dan hanya Sudo foo biasa) memungkinkan Anda menjalankan perintah yang Anda pra-otorisasi [lihat /etc/sudoers], mungkin dengan meminta Anda untuk mengkonfirmasi saat ini ID Anda --- saat ini.

Jika Anda ingin benar-benar imut, Anda juga dapat menjalankan Sudo su -, yang akan meminta untuk login sebagai root (su -) yang dijalankan oleh pengguna root (bagian Sudo).

Jika pengguna root dikunci (seperti di Ubuntu), Anda tidak akan bisa login sebagai root menggunakan su. Dalam hal ini, Anda harus menggunakan Sudo -s atau Sudo -i

30
Mikeage
su -s

Akan beralih ke pengguna (dalam hal ini root) dan meluncurkan Shell yang Anda tentukan, atau salah satu dari beberapa metode lain untuk menentukan Shell. Ini berguna jika Anda ingin menggunakan zsh atau Shell lain sebagai root dengan sangat cepat ... dan untuk beberapa alasan Anda tidak menggunakan Sudo.

Sudo -s

Cukup jalankan Shell menggunakan Sudo, yang akan memberi Anda root Shell. Anda dapat memberikan Shell juga.

su -s lebih tua, jauh lebih tua dari perintah Sudo -s. Dugaan saya adalah bahwa pengembang mencoba membuatnya semudah mungkin untuk beralih menggunakan Sudo.

12
Mark Turner

su adalah perintah untuk berubah ke pengguna lain, baik untuk menjalankan Shell atau menjalankan perintah tertentu. Anda harus mengautentikasi sebagai pengguna lain. Jika Anda ingin su untuk melakukan root, Anda memerlukan kata sandi root.

Sudo adalah perintah untuk menjalankan perintah lain (opsional Shell) sebagai pengguna yang berbeda. Anda harus mengautentikasi sebagai pengguna Anda sendiri. Izin untuk menggunakan Sudo (dan hal-hal spesifik yang dapat Anda lakukan dengannya) ditentukan oleh administrator dalam file sudoers.

Jika Anda memberi seseorang akses ke su (dengan, misalnya, memberi mereka kata sandi root), maka mereka dapat melakukan apa saja dengan su - jalankan perintah lain, buka Shell, ubah kata sandi, login dari jarak jauh melalui ssh, dan sebagainya. Anda pada dasarnya memberi mereka akses ke akun lain, dengan 'su' menjadi satu hal yang dapat mereka lakukan dengannya.

Sudo jauh lebih berbutir halus. Anda dapat memberikan hak istimewa kepada pengguna, atau ke grup. Anda dapat mengizinkan pengguna atau grup ke Sudo dalam jangka waktu tertentu (mis. Senin hingga Jumat, jam 9 pagi hingga jam 5 sore). Anda dapat menentukan daftar perintah tertentu yang diizinkan dijalankan (mis. Hanya/usr/local/bin/run_backup) atau Anda dapat menentukan pengguna tertentu yang diizinkan menjalankan perintah seperti (misalnya www, cadangan, staf, dll. ).

Selain fleksibilitasnya, Sudo adalah solusi yang lebih baik dalam semua kasus, karena tidak memerlukan akses ke apa pun yang belum dimiliki pengguna. Jika Anda memberi seseorang akses Sudo, Anda dapat mencabutnya dengan menghapus baris mereka di file sudoers, atau menghapusnya dari grup sudoers. Jika Anda menghapus akun mereka, akses mereka hilang.

Jika Anda memberi mereka kata sandi root, bahkan dengan asumsi mereka tidak melakukan sesuatu yang tidak menyenangkan dengannya, maka mereka akan mengetahuinya selamanya. Jika Anda memiliki banyak orang yang memerlukan akses root untuk tugas-tugas administratif, ini berarti mengubah semua kata sandi root setiap kali seseorang pergi, atau dengan anggapan bahwa boleh saja mereka memiliki akses penuh ke sistem Anda setelah Anda pergi.

9
Dan Udey
  • su akan meminta Anda root kata sandi pengguna.
  • Sudo akan meminta Anda Anda kata sandi (dan Anda perlu dibersihkan untuk akses Sudo untuk melakukan itu).
5
badp

Dari Wikipedia :

su (kependekan dari pengguna pengganti atau pengguna beralih) adalah perintah Unix yang digunakan untuk menjalankan Shell dari pengguna lain tanpa keluar.

Perintah terkait yang disebut Sudo mengeksekusi perintah sebagai pengguna lain tetapi mengamati serangkaian kendala tentang pengguna yang dapat mengeksekusi perintah mana yang dilakukan oleh pengguna lain (umumnya dalam suatu file konfigurasi bernama/etc/sudoers, paling baik diedit oleh perintah visudo). Tidak seperti su, Sudo mengautentikasi pengguna terhadap kata sandi mereka sendiri daripada kata sandi pengguna target (untuk memungkinkan pendelegasian perintah khusus kepada pengguna tertentu pada host tertentu tanpa berbagi kata sandi di antara mereka dan sambil mengurangi risiko terminal yang tidak diawasi).

2
Yaakov Ellis

Satu hal yang tidak bisa dikatakan sepenuhnya adalah ini: yang mana yang Anda dapat gunakan sering bergantung pada distribusi apa yang Anda gunakan dan siapa yang menjalankannya. Satu atau yang lainnya (su atau Sudo) mungkin tidak diatur untuk penggunaan penuh secara default. Jadi misalnya, seperti yang disebutkan beberapa orang, OS X dan Ubuntu menonaktifkan akun root (su) secara default. Demikian pula, Debian tidak memberi pengguna reguler hak default apa pun untuk Sudo. (Pada semua sistem ini, Anda dapat mengubah default ini, tetapi hanya jika Anda memiliki semacam hak administratif untuk memulai. Saya kira kita sedang berbicara tentang situasi non-server dan Anda mengelola mesin karena kita menggunakan SU lebih tepatnya dari SF, tetapi untuk berjaga-jaga.)

Akhirnya, jika Anda ingin menggunakan Sudo dengan cara yang lebih halus, Anda harus melihat man sudoers untuk cara mengedit file / etc/sudoers. Namun, Anda harus tidak pernah mengeditnya dengan tangan. Gunakan program visudo - itu akan mencegah Anda menyimpan suntingan Anda kecuali mereka setidaknya minimal waras. Ini adalah perlindungan besar terhadap kesalahan sederhana yang dapat mengunci Anda dari hak admin sistem Anda sendiri.

2
Telemachus

Pada sistem di mana akun pengguna super dinonaktifkan, seperti Mac OS X, su tidak akan berfungsi; Sudo -s akan.

Juga, tampaknya tidak ada su -s tersedia, setidaknya di komputer saya.

1
jtbandes

Pendahuluan ini dapat membantu Anda. su adalah singkatan untuk su root, dan Anda menjaga hak-hak Anda sebagai pengguna lain tanpa batas. Lebih berbahaya, tetapi juga lebih nyaman jika Anda melakukan banyak perintah akses root selama periode waktu tertentu.

1
Nikhil Chelliah

su pada dasarnya akan membuat Shell login baru dengan hak pengguna lain (login) Sudo hanya sementara akan mengizinkan Anda untuk mengeksekusi perintah menggunakan pengguna yang Anda tentukan. Pada beberapa UNIX seperti FreeBDS tidak ada opsi '-s'.

1
hendrasaputra