Apa Perbezaan Antara Sudo dan Su di Linux?

Sekiranya anda pengguna Linux, anda mungkin pernah melihat rujukan untuk sudo dan su. Artikel di sini mengenai How-To Geek dan di tempat lain memerintahkan pengguna Ubuntu untuk menggunakan sudo dan pengguna distribusi Linux lain untuk menggunakan su, tetapi apa bedanya?

Sudo dan su adalah dua cara berbeza untuk mendapatkan hak istimewa root. Setiap fungsi dengan cara yang berbeza, dan distribusi Linux yang berbeza menggunakan konfigurasi yang berbeza secara lalai.

Pengguna Akar

Baik su dan sudo digunakan untuk menjalankan perintah dengan izin root. Pengguna root pada dasarnya setara dengan pengguna pentadbir pada Windows - pengguna root mempunyai izin maksimum dan dapat melakukan apa sahaja pada sistem. Pengguna biasa di Linux berjalan dengan izin yang dikurangkan - misalnya, mereka tidak dapat memasang perisian atau menulis ke direktori sistem.

Untuk melakukan sesuatu yang memerlukan kebenaran ini, anda harus memperolehnya dengan su atau sudo.

Su vs Sudo

Perintah su beralih ke pengguna super - atau pengguna root - ketika anda melaksanakannya tanpa pilihan tambahan. Anda mesti memasukkan kata laluan akaun root. Namun, ini bukan semua perintah su - anda boleh menggunakannya untuk beralih ke akaun pengguna mana pun. Sekiranya anda menjalankan perintah su bob , anda akan diminta memasukkan kata laluan Bob dan shell akan beralih ke akaun pengguna Bob.

Setelah selesai menjalankan perintah di root shell, anda harus mengetik keluar untuk meninggalkan root shell dan kembali ke mod hak istimewa terhad.

Sudo menjalankan satu perintah dengan hak root. Apabila anda menjalankan perintah sudo , sistem akan meminta kata laluan akaun pengguna semasa anda sebelum menjalankan perintah sebagai pengguna root. Secara lalai, Ubuntu mengingat kata laluan selama lima belas minit dan tidak akan meminta kata laluan lagi sehingga lima belas minit habis.

Ini adalah perbezaan utama antara su dan sudo. Su menukar anda ke akaun pengguna root dan memerlukan kata laluan akaun root. Sudo menjalankan satu perintah dengan hak root - ia tidak beralih kepada pengguna root atau memerlukan kata laluan pengguna root yang berasingan.

Ubuntu vs Pengedaran Linux Lain

Perintah su adalah cara tradisional untuk mendapatkan kebenaran root pada Linux. Perintah sudo sudah ada sejak sekian lama, tetapi Ubuntu adalah sebaran Linux popular pertama yang hanya menggunakan sudo secara lalai. Semasa anda memasang Ubuntu, akaun root standard dibuat, tetapi tidak ada kata laluan yang diberikan kepadanya. Anda tidak boleh log masuk sebagai root sehingga anda memberikan kata laluan ke akaun root.

Terdapat beberapa kelebihan menggunakan sudo dan bukan su secara lalai. Pengguna Ubuntu hanya perlu menyediakan dan mengingat satu kata laluan, sedangkan Fedora dan pengedaran lain menghendaki anda membuat kata laluan akaun root dan pengguna yang terpisah semasa pemasangan.

Kelebihan lain ialah ia menghalang pengguna untuk masuk sebagai pengguna root - atau menggunakan su untuk mendapatkan shell root - dan membiarkan shell root terbuka untuk melakukan kerja normal mereka. Menjalankan lebih sedikit perintah kerana root meningkatkan keselamatan dan mencegah perubahan di seluruh sistem secara tidak sengaja.

Pengedaran berdasarkan Ubuntu, termasuk Linux Mint, juga menggunakan sudo dan bukan su secara lalai.

Beberapa Tipuan

Linux fleksibel, jadi tidak memerlukan banyak pekerjaan untuk membuat su berfungsi sama dengan sudo - atau sebaliknya.

Untuk menjalankan satu perintah sebagai pengguna root dengan su, jalankan perintah berikut:

su -c 'arahan'

Ini mirip dengan menjalankan perintah dengan sudo, tetapi anda memerlukan kata laluan akaun root dan bukannya kata laluan akaun pengguna semasa anda.

Untuk mendapatkan shell akar interaktif penuh dengan sudo, jalankan sudo –i.

Anda harus memberikan kata laluan akaun pengguna semasa anda dan bukannya kata laluan akaun root.

Membolehkan Pengguna Root di Ubuntu

Untuk mengaktifkan akaun pengguna root di Ubuntu, gunakan perintah berikut untuk menetapkan kata laluan untuknya. Perlu diingat bahawa Ubuntu mengesyorkan agar tidak berlaku.

akar sudo passwd

Sudo akan meminta kata laluan akaun pengguna semasa anda sebelum anda dapat menetapkan kata laluan baru. Gunakan kata laluan baru anda untuk log masuk sebagai root dari prompt log masuk terminal atau dengan perintah su. Anda tidak boleh menjalankan persekitaran grafik sepenuhnya sebagai pengguna root - ini adalah amalan keselamatan yang sangat buruk, dan banyak program akan menolak untuk berfungsi.

Menambah Pengguna ke Fail Sudoers

Hanya akaun jenis pentadbir di Ubuntu yang dapat menjalankan perintah dengan sudo. Anda boleh menukar jenis akaun pengguna dari tetingkap konfigurasi Akaun Pengguna.

Ubuntu secara automatik menetapkan akaun pengguna yang dibuat semasa pemasangan sebagai akaun pentadbir.

Sekiranya anda menggunakan sebaran Linux yang lain, anda boleh memberi izin kepada pengguna untuk menggunakan sudo dengan menjalankan perintah visudo dengan hak root (jadi jalankan su dulu atau gunakan su -c ).

Tambahkan baris berikut ke fail, ganti pengguna dengan nama akaun pengguna:

pengguna SEMUA = (SEMUA: SEMUA) SEMUA

Tekan Ctrl-X dan kemudian Y untuk menyimpan fail. Anda mungkin juga dapat menambahkan pengguna ke kumpulan yang ditentukan dalam fail. Pengguna dalam kumpulan yang ditentukan dalam fail secara automatik akan mendapat hak istimewa sudo.

Versi Grafik Su

Linux juga menyokong versi grafik su, yang meminta kata laluan anda dalam persekitaran grafik. Sebagai contoh, anda boleh menjalankan perintah berikut untuk mendapatkan arahan kata laluan grafik dan menjalankan penyemak imbas fail Nautilus dengan izin root. Tekan Alt-F2 untuk menjalankan perintah dari dialog larian grafik tanpa melancarkan terminal.

gksu nautilus

Perintah gksu juga mempunyai beberapa helah lain - ia mengekalkan tetapan desktop anda sekarang, jadi program grafik tidak akan kelihatan tidak tepat apabila anda melancarkannya sebagai pengguna yang berbeza. Program seperti gksu adalah kaedah pilihan untuk melancarkan aplikasi grafik dengan hak istimewa root.

Gksu menggunakan backend berasaskan su atau sudo, bergantung pada sebaran Linux yang anda gunakan.

Anda sekarang harus bersedia untuk menghadapi su dan sudo! Anda akan menghadapi kedua-duanya jika anda menggunakan sebaran Linux yang berbeza.