Dengan perintah su, setiap pengguna yang mengetahui kata sandi root dapat “mendapatkan root” dan melakukan apa pun yang dapat dilakukan pengguna root. Akun yang menggunakan “su – root” pada dasarnya adalah administrator server. Ini seringkali jauh lebih banyak kekuatan daripada yang seharusnya didelegasikan kepada pengguna. Praktik yang lebih baik adalah mendelegasikan fungsi tertentu kepada pengguna daripada memberikan hak akses root di seluruh sistem.
Perintah sudo memungkinkan administrator server untuk mendelegasikan perintah tertentu kepada pengguna tertentu tanpa memberi mereka hak penuh di server. Pendelegasian dilakukan di file /etc/sudoers dengan menggunakan editor visudo. Pengguna dan grup dapat diberikan perintah khusus untuk dijalankan guna memenuhi tanggung jawab mereka tanpa memiliki hak administrator penuh.
Sintaks
Sintaks dari perintah sudo adalah:
$ sudo [options] {command}
Jika Anda menemukan kesalahan di bawah ini saat menjalankan perintah sudo:
sudo: command not found
Anda dapat mencoba menginstal paket sudo seperti yang ditunjukkan di bawah ini sesuai dengan pilihan distribusi Anda.
Distribusi | Perintah |
---|---|
Debian | apt-get install sudo |
Ubuntu | apt-get install sudo |
Alpin | apk tambahkan sudo |
Linux Arch | pacman -S sudo |
Kali Linux | apt-get install sudo |
CentOS | yum install sudo |
Fedora | dnf install sudo |
Raspbian | apt-get install sudo |
Contoh Perintah Sudo
1. Jalankan perintah sebagai superuser:
$ sudo less /var/log/syslog
2. Edit file sebagai pengguna super dengan editor default Anda:
$ sudo --edit /etc/fstab
3. Jalankan perintah sebagai pengguna dan/atau grup lain:
$ sudo --user=user --group=group id -a
4. Ulangi perintah terakhir yang diawali dengan `sudo` (hanya di `bash`, `zsh`, dll.):
$ sudo !!
5. Luncurkan shell default dengan hak pengguna super dan jalankan file khusus login (`.profile`, `.bash_profile`, dll.):
$ sudo --login
6. Luncurkan shell default dengan hak pengguna super tanpa mengubah lingkungan:
$ sudo --shell
7. Luncurkan shell default sebagai pengguna yang ditentukan, memuat lingkungan pengguna dan membaca file khusus login (`.profile`, `.bash_profile`, dll.):
$ sudo --login --user=user
8. Buat daftar perintah yang diizinkan (dan dilarang) untuk pengguna yang memanggil:
$ sudo --list
Kesimpulan
bagaimana tepatnya program sudo can-do-anything bekerja? Ini lebih sederhana dari yang Anda pikirkan! Lihat kode berikut:
$ which sudo /usr/bin/sudo $ ls -l $(which sudo) -rwsr-xr-x 1 root root 145040 Jun 13 2022 /usr/bin/sudo
Kami mencatat bahwa sudo yang dapat dieksekusi biner benar-benar program setuid-root! Jadi pikirkanlah:setiap kali Anda menjalankan program dengan sudo, proses sudo langsung berjalan dengan hak akses root—tanpa kata sandi, tanpa repot. Tapi, tentu saja, demi keamanan, pengguna harus memasukkan kata sandi; setelah mereka memasukkannya dengan benar, sudo melanjutkan eksekusi dan menjalankan perintah yang Anda inginkan—sebagai root. Jika pengguna gagal memasukkan kata sandi dengan benar (biasanya dalam tiga kali percobaan), sudo membatalkan eksekusi.