Artikel ini membahas perbedaan antara sudo
dan su
perintah di Linux. Anda juga dapat menonton video ini untuk mempelajari tentang perintah-perintah ini. Menjadi root secara permanen dengan su
adalah 'tidak-tidak' yang terkenal di alam semesta *nix. Mengapa? Karena menjadi root dengan su
berarti Anda adalah root, yang sama dengan masuk ke terminal sebagai pengguna root dengan kata sandi root. Dan itu berbahaya karena berbagai alasan.
[ Anda mungkin juga menikmati: Dasar-dasar baris perintah Linux:sudo ]
Bekerja sebagai root berarti Anda memiliki kekuatan untuk:
- Hapus salah satu atau semua file
- Ubah izin dari salah satu atau semua file
- Ubah runlevel sistem
- Mengubah akun pengguna
- Memasang atau melepas sistem file
- Hapus atau instal perangkat lunak
- Membuat, menghapus, dan mengubah sistem file
Pada dasarnya, Anda dapat melakukan apa saja pada sistem sebagai pengguna root. Ini adalah akun administratif yang sangat kuat. Dan, tidak seperti sistem operasi lain yang lebih cerewet, Anda tidak akan melihat, "Apakah Anda yakin?" dialog untuk memastikan bahwa rm -rf *
perintah yang baru saja Anda keluarkan ada di /opt/tmp
bukan di /
. Seperti yang dapat Anda bayangkan, kesalahan yang dibuat sebagai pengguna root dapat menjadi tidak dapat diubah dan menghancurkan. Ada alternatif:sudo
.
sudo
sudo
, yang merupakan akronim dari superuser do atau subtitusi user do , adalah perintah yang menjalankan prompt yang ditinggikan tanpa perlu mengubah identitas Anda. Tergantung pada pengaturan Anda di /etc/sudoers
file, Anda dapat mengeluarkan perintah tunggal sebagai root atau sebagai pengguna lain. Untuk terus menjalankan perintah dengan kekuatan root, Anda harus selalu menggunakan perintah sudo. Misalnya, jika Anda ingin memasang Nginx paket, Anda menjalankan:
$ dnf install nginx
Tetapi Anda akan melihat kesalahan jika Anda tidak melakukan root atau berada di grup sudo. Sebaliknya, jika Anda menjalankan perintah ini:
$ sudo dnf install nginx
Anda akan diminta untuk mengetikkan kata sandi Anda, dan kemudian Anda dapat menjalankan perintah tersebut jika Anda adalah bagian dari grup sudo.
Cara sederhana untuk beralih ke sesi interaktif sebagai pengguna root adalah sebagai berikut:
$ sudo -i
Teori di balik penggunaan sudo adalah bahwa tindakan mengeluarkan perintah sudo sebelum perintah apa pun yang Anda jalankan membuat Anda lebih memikirkan apa yang Anda lakukan dan semoga membuat lebih sedikit kesalahan dengan akun yang memiliki kekuatan tak terbatas.
su
su
, di sisi lain, adalah akronim untuk ganti pengguna atau pengguna pengganti . Anda pada dasarnya beralih ke pengguna tertentu dan Anda memerlukan kata sandi untuk pengguna yang Anda tuju. Paling sering, akun pengguna yang Anda alihkan adalah akun root tetapi dapat berupa akun apa pun di sistem.
Misalnya, jika Anda mengetik:
$ su -
Pada contoh di atas, Anda beralih ke root dan Anda memerlukan sandi root. (-
) switch memberi Anda lingkungan root (variabel path dan shell) daripada hanya memberi Anda kekuatan pengguna root untuk satu perintah sambil menjaga lingkungan Anda sendiri.
$ su bryant
Untuk contoh kedua, Anda beralih ke bryant , jadi Anda memerlukan kata sandi bryant kecuali Anda root.
Jika Anda ingin beralih ke bryant akun pengguna termasuk path bryant dan variabel lingkungan, gunakan (-
) beralih:
$ su - bryant
(-
) switch memiliki efek yang sama seperti masuk ke sistem secara langsung dengan akun pengguna tersebut. Intinya, Anda menjadi pengguna itu.
Menutup
Mengulang kembali apa yang telah Anda pelajari.
sudo
memungkinkan Anda mengeluarkan perintah sebagai pengguna lain tanpa mengubah identitas Anda- Anda harus memiliki entri di
/etc/sudoers
untuk menjalankan izin terbatas ini sudo -i
membawa Anda ke sesi interaktif sebagai rootsu
berarti beralih ke pengguna tertentu- Cukup mengetik
su
beralih ke pengguna root sudo
akan meminta kata sandi Anda, sementarasu
akan meminta kata sandi untuk pengguna yang Anda tuju
[ Ingin mempelajari lebih lanjut tentang keamanan? Lihat daftar periksa keamanan dan kepatuhan TI. ]
Tetapi kapan Anda menggunakan satu, bukan yang lain? Sejak sudo
kebijakan didefinisikan dalam /etc/sudoers
, ini dapat memberikan kontrol izin yang kuat. Sejak sudo
dapat melakukan banyak hal yang su
bisa, saya akan mengatakan yang terbaik adalah tetap menggunakan sudo
kecuali jika Anda bekerja dengan beberapa kode lama yang memerlukan su
perintah.