Perbedaan antara Su, Sudo Su, Sudo -s dan Sudo -i

Ada banyak cara berbeda untuk mendapatkan sesi root di terminal Linux. Hal ini dapat menimbulkan kebingungan, karena sebagian besar pengguna pemula yang ingin mendapatkan hak akses root mungkin tidak terbiasa dengan bagaimana setiap perintah dapat memperoleh akses root, perbedaannya, dan kapan perbedaan ini penting. Di sini kami memisahkan masing-masing dari banyak perintah berbeda yang digunakan untuk mendapatkan akses root di terminal, menjelaskan bagaimana mereka mendapatkan root, kapan menggunakannya, dan semua yang ada di antaranya.

su

Perintah su menggantikan pengguna saat ini dengan root di shell saat ini.

Anda dapat beralih ke pengguna mana pun dengan mengetikkan su dan menambahkan nama pengguna setelahnya.

Ini akan memberi tahu sistem untuk beralih (dan pada dasarnya keluar dari) pengguna saat ini ke pengguna yang ditentukan. Alternatifnya, perintah su dapat memperoleh akses root dengan memasukkan su tanpa menentukan apa pun setelah perintah.

su paling baik digunakan saat pengguna menginginkan akses langsung ke akun root di sistem. Itu tidak melalui sudo atau semacamnya. Sebagai gantinya, Anda diminta memasukkan kata sandi pengguna root, karena Anda benar-benar masuk ke dalamnya. Selain itu, cara lain untuk mendapatkan akses root tidak memiliki manfaat untuk mendapatkan akses ke direktori home root dan lingkungan root.

Peringatan: menggunakan su adalah cara paling tidak aman untuk menjalankan aksi root. Secara umum, jika Anda bisa menghindarinya, jangan gunakan ini.

su -c

Perintah ini meneruskan perintah lain ke pengguna root secara langsung.

Mirip dengan mengetik sudo sebelum perintah, su -c akan menjalankan perintah sebagai pengguna root. Alih-alih hanya mengetik perintah, Anda harus memasukkannya ke dalam tanda kutip.

Ini adalah cara cepat menembak satu perintah melalui terminal Anda dengan hak istimewa yang lebih tinggi. Ini sangat berguna jika sudo entah bagaimana tidak tersedia (tidak diinstal sebelumnya di distro seperti Arch Linux) atau gagal berfungsi dengan benar karena rusak.

Karena Anda mengirimkan sesuatu secara langsung ke root, jika kata sandi pengguna dan root Anda berbeda, Anda harus mengetikkan kata sandi root untuk mengautentikasi.

sudo su

Perintah ini meminta kata sandi pengguna saat ini daripada root.

Ini pada dasarnya sama dengan hanya menjalankan su di shell, simpan untuk satu perbedaan penting: alih-alih memberi tahu sistem untuk “beralih pengguna” secara langsung, Anda menyuruhnya menjalankan perintah su dengan hak superuser. Ketika sudo su dijalankan, “.profile,” “.bashrc” dan “/etc/profile” akan dimulai, seperti menjalankan su (atau su root ). Jika ada perintah yang dijalankan dengan sudo di depannya, itu diberikan hak akses root.

Meskipun tidak ada perbedaan besar antara sudo su dan su , yang pertama masih merupakan perintah yang sangat berguna karena satu alasan penting: saat pengguna menjalankan su untuk mendapatkan akses root pada sistem, mereka harus mengetahui kata sandi root. Root diberikan dengan sudo su dengan meminta kata sandi pengguna saat ini, yang memungkinkan untuk mendapatkan root tanpa kata sandi root.

Ini berguna dalam situasi di mana Anda mungkin lupa kata sandi root jika berbeda dari kata sandi untuk akun pengguna Anda. Sementara Anda bisa melakukan ini untuk sementara, Anda masih harus GB

Sama seperti sudo su , flag -i memungkinkan pengguna untuk mendapatkan lingkungan root tanpa harus mengetahui kata sandi akun root. sudo -i juga sangat mirip dengan sudo su : ini akan membaca semua file lingkungan (“.profile”, dll.) dan mengatur lingkungan di dalam shell.

Perbedaannya dengan sudo su adalah bahwa sudo -i adalah cara yang jauh lebih bersih untuk mendapatkan root dan lingkungan root tanpa berinteraksi langsung dengan pengguna root.

Untuk memperjelas: dengan sudo su , Anda menggunakan lebih dari satu perintah root setuid di latar belakang. Ini membuatnya jauh lebih menantang untuk mengetahui variabel lingkungan mana yang akan disimpan dan mana yang akan diubah (ketika bertukar ke lingkungan root). Ini tidak benar dengan sudo -i . Karena itu, kebanyakan orang melihatnya sebagai metode yang disukai untuk mendapatkan root tanpa masuk secara langsung.

Dalam bahasa yang lebih sederhana: sudo -i akan memberi Anda login root “bersih” di folder “/ root”, yang merupakan folder “home” untuk pengguna root.

sudo -s

Perintah ini memanggil sebuah shell dengan variabel $SHELL Anda.

Sakelar -s untuk perintah sudo membaca variabel $SHELL dari perintah yang dijalankan pengguna saat ini. Perintah ini berfungsi seolah-olah pengguna menjalankan sudo /bin/bash , jika shell asal pengguna adalah bash.

Dalam kasus kami, sudo -s memberi kami shell interaktif ikan, seperti yang sebelumnya kami instal fish sebagai shell default kami, jadi seolah-olah kami menjalankan sudo /usr/bin/fish .

Sudo -s adalah shell gaya “non-login”. Tidak seperti perintah seperti sudo -i atau sudo su , sistem tidak akan membaca file lingkungan apa pun. Saat pengguna memberi tahu shell untuk menjalankan sudo -s , shell mendapatkan root tetapi tidak akan mengubah lingkungan pengguna. Rumah Anda tidak akan menjadi rumah root, dll.

Perintah ini paling baik digunakan ketika pengguna ingin beralih ke root tetapi tetap menggunakan lingkungan shell yang sama. Misalnya, Anda mungkin ingin menjalankan skrip fish dan tidak dipaksa masuk ke bash shell default yang sering didapat root di sebagian besar distro.

Perintah lain yang dibahas di atas mendapatkan akses root tetapi juga akan memberi Anda variabel shell dan lingkungan yang dimiliki distro untuk root. Mungkin Anda hanya ingin beralih ke pengguna tanpa semua beban itu!

Pertanyaan yang Sering Diajukan

Mengapa cangkang yang saya jalankan dengan materi?

Jika Anda menggunakan bash shell yang tidak dimodifikasi untuk akun pengguna Anda, perbedaannya sebagian besar bersifat filosofis. Dalam kebanyakan kasus, mengangkat ke root melalui salah satu shell tidak akan menghasilkan perubahan yang nyata. Tetapi jika Anda menjalankan yang lain, Anda akan segera melihat betapa berbedanya hal itu!

Misalnya, Anda menjalankan shell ikan untuk akun pengguna Anda dan menyimpan shell root di bash. Memuat shell pengguna dengan menggunakan sudo -s menghasilkan hasil yang sangat berbeda.

Shell akan mengikuti konfigurasi mana pun yang Anda miliki di folder home root. Jika Anda tidak memilikinya, itu hanya akan memuat konfigurasi default, bukan konfigurasi pribadi Anda. (Dalam kasus kami, itu akan menjadi “~/.config/fish/config.fish”.) Untuk semua maksud dan tujuan, sebaiknya biarkan hal-hal seperti itu daripada menyalin konfigurasi pengguna ke “/root”.

Mengubah ke shell akun pengguna Anda saat menukar ke root hanya boleh dilakukan jika Anda perlu menjalankan skrip yang benar-benar membutuhkan shell tersebut.

Bisakah mengakses root membahayakan sistem saya?

Dalam beberapa kasus, ya. Kecuali jika Anda benar-benar yakin bahwa Anda perlu mengakses root untuk semua hal dalam sesi termi
nal tertentu, seringkali lebih baik mengetikkan sudo diikuti dengan perintah, jika Anda ingin mengakses root untuk perintah tersebut. Misalnya, mengetik sudo apt install vlc di versi Linux berbasis Debian apa pun akan memberi tahu sistem operasi untuk mengakses root hanya untuk menjalankan manajer paket APT untuk menginstal VLC.

Satu peringatan yang sangat penting untuk menjalankan sudo -i atau varian lain yang telah kita diskusikan sebelumnya daripada mengetikkan sudo sebelum setiap perintah yang ingin Anda jalankan sebagai root adalah bahwa yang pertama tidak memasukkan riwayat perintah Anda ke “/var/log/auth .catatan”. Jika Anda mengacau, Anda tidak dapat kembali dan memeriksa apa yang telah Anda lakukan sehingga Anda dapat memperbaikinya. Anda harus beroperasi dari memori, karena sesi root tidak direkam.

Saat saya mengetik “sudo” sebelum perintah, varian “sudo su” mana yang saya jalankan?

Dengan mengetikkan sudo untuk menjalankan perintah (yaitu, Anda mengetiknya di baris yang sama dengan perintah yang ingin Anda jalankan), pada dasarnya Anda menjalankannya di bawah shell root interaktif. Inilah yang dilakukan oleh perintah mandiri sudo -s . Ini juga sangat mirip dengan menjalankan perintah su -c .

Semua tangkapan layar oleh Miguel Leiva-Gomez.

Related Posts

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *