Di Linux dan sistem operasi mirip Unix lainnya, hanya root pengguna dapat menjalankan semua perintah dan melakukan operasi kritis tertentu pada sistem seperti menginstal dan memperbarui, menghapus paket, membuat pengguna dan grup, memodifikasi file konfigurasi sistem penting, dan sebagainya.
Namun, administrator sistem yang berperan sebagai pengguna root dapat mengizinkan pengguna sistem normal lainnya dengan bantuan perintah sudo dan beberapa konfigurasi untuk menjalankan beberapa perintah serta melakukan sejumlah operasi sistem vital termasuk yang disebutkan di atas.
Atau, administrator sistem dapat membagikan kata sandi pengguna root (yang bukan merupakan metode yang disarankan) sehingga pengguna sistem normal memiliki akses ke akun pengguna root melalui su perintah.
sudo memungkinkan pengguna yang diizinkan untuk menjalankan perintah sebagai root (atau pengguna lain), sebagaimana ditentukan oleh kebijakan keamanan:
- Membaca dan mem-parsing /etc/sudoers , mencari pengguna yang memanggil dan izinnya,
- kemudian meminta sandi pengguna yang meminta (biasanya sandi pengguna, tetapi bisa juga sandi pengguna target. Atau dapat dilewati dengan tag NOPASSWD),
- setelah itu, sudo membuat proses anak yang memanggil setuid() untuk beralih ke pengguna target
- selanjutnya, menjalankan shell atau perintah yang diberikan sebagai argumen dalam proses anak di atas.
Di bawah ini adalah sepuluh /etc/sudoers konfigurasi file untuk mengubah perilaku sudo perintah menggunakan Default entri.
$ sudo cat /etc/sudoers/etc/sudoers File
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Defaults logfile="/var/log/sudo.log" Defaults lecture="always" Defaults badpass_message="Password is wrong, please try again" Defaults passwd_tries=5 Defaults insults Defaults log_input,log_output
Jenis Entri Default
Defaults parameter, parameter_list #affect all users on any host [email protected]_List parameter, parameter_list #affects all users on a specific host Defaults:User_List parameter, parameter_list #affects a specific user Defaults!Cmnd_List parameter, parameter_list #affects a specific command Defaults>Runas_List parameter, parameter_list #affects commands being run as a specific user
Untuk cakupan panduan ini, kami akan membahas jenis Default first yang pertama dalam bentuk-bentuk di bawah ini. Parameter dapat berupa flag, nilai integer, string, atau daftar.
Anda harus mencatat bahwa flag secara implisit boolean dan dapat dimatikan menggunakan '!'
operator, dan daftar memiliki dua operator penugasan tambahan, +=
(tambahkan ke daftar) dan -=
(hapus dari daftar).
Defaults parameter OR Defaults parameter=value OR Defaults parameter -=value Defaults parameter +=value OR Defaults !parameter
1. Tetapkan PATH Aman
Ini adalah jalur yang digunakan untuk setiap perintah yang dijalankan dengan sudo, ini memiliki dua kepentingan:
- Digunakan ketika administrator sistem tidak mempercayai pengguna sudo untuk memiliki variabel lingkungan PATH yang aman
- Untuk memisahkan “jalur root” dan “jalur pengguna”, hanya pengguna yang ditentukan oleh exempt_group tidak terpengaruh oleh setelan ini.
Untuk mengaturnya, tambahkan baris:
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"
2. Aktifkan sudo pada Sesi Login Pengguna TTY
Untuk mengaktifkan sudo agar dipanggil dari tty real yang sebenarnya tetapi tidak melalui metode seperti cron atau cgi-bin script, tambahkan baris:
Defaults requiretty
3. Jalankan Perintah Sudo Menggunakan pty
Beberapa kali, penyerang dapat menjalankan program jahat (seperti virus atau malware) menggunakan sudo, yang lagi-lagi akan memotong proses latar belakang yang tetap ada di perangkat terminal pengguna bahkan ketika program utama telah selesai dijalankan.
Untuk menghindari skenario seperti itu, Anda dapat mengonfigurasi sudo untuk menjalankan perintah lain hanya dari psuedo-pty menggunakan use_pty
parameter, apakah logging I/O diaktifkan atau tidak sebagai berikut:
Defaults use_pty
4. Buat File Log Sudo
Secara default, Sudo masuk melalui syslog(3). Namun, untuk menentukan file log kustom, gunakan parameter file log seperti:
Defaults logfile="/var/log/sudo.log"
Untuk mencatat nama host dan tahun empat digit di file log khusus, gunakan log_host dan log_year parameter masing-masing sebagai berikut:
Defaults log_host, log_year, logfile="/var/log/sudo.log"
Di bawah ini adalah contoh file log sudo khusus:
5. Log Input/Output Perintah Sudo
masukan_log dan log_output parameter memungkinkan sudo menjalankan perintah dalam pseudo-tty dan mencatat semua input pengguna dan semua output yang dikirim ke layar secara reseptif.
Direktori log I/O default adalah /var/log/sudo-io , dan jika ada nomor urut sesi, nomor tersebut disimpan di direktori ini. Anda dapat menentukan direktori khusus melalui iolog_dir parameter.
Defaults log_input, log_output
Ada beberapa urutan pelarian yang didukung seperti %{seq}
yang diperluas ke nomor urut basis-36 yang meningkat secara monoton, seperti 000001, di mana setiap dua digit digunakan untuk membentuk direktori baru, mis. 00/00/01 seperti pada contoh di bawah ini:
$ cd /var/log/sudo-io/ $ ls $ cd 00/00/01 $ ls $ cat log
Anda dapat melihat sisa file di direktori tersebut menggunakan perintah cat.
6. Kuliah Pengguna Sudo
Untuk memberi kuliah pengguna sudo tentang penggunaan kata sandi pada sistem, gunakan ceramah parameter seperti di bawah ini.
Ini memiliki 3 kemungkinan nilai:
- selalu – selalu menceramahi pengguna.
- sekali – hanya memberi kuliah pengguna saat pertama kali mereka menjalankan perintah sudo (ini digunakan ketika tidak ada nilai yang ditentukan)
- tidak pernah – jangan pernah menceramahi pengguna.
Defaults lecture="always"
Selain itu, Anda dapat menyetel file kuliah khusus dengan lecture_file parameter, ketik pesan yang sesuai dalam file:
Defaults lecture_file="/path/to/file"
7. Tampilkan Pesan Khusus Saat Anda Memasukkan Kata Sandi Sudo yang Salah
Ketika pengguna memasukkan kata sandi yang salah, pesan tertentu ditampilkan di baris perintah. Pesan defaultnya adalah “maaf, coba lagi ”, Anda dapat mengubah pesan menggunakan badpass_message parameternya sebagai berikut:
Defaults badpass_message="Password is wrong, please try again"
8. Tingkatkan Batas Percobaan Kata Sandi Sudo
Parameter passwd_tries digunakan untuk menentukan berapa kali pengguna dapat mencoba memasukkan kata sandi.
Nilai defaultnya adalah 3:
Defaults passwd_tries=5
Untuk menyetel batas waktu sandi (default adalah 5 menit) menggunakan passwd_timeout parameter, tambahkan baris di bawah ini:
Defaults passwd_timeout=2
9. Biarkan Sudo Menghina Anda Saat Anda Memasukkan Kata Sandi yang Salah
Jika pengguna mengetikkan kata sandi yang salah, Sudo akan menampilkan penghinaan di terminal dengan parameter penghinaan. Ini akan otomatis menonaktifkan badpass_message parameter.
Defaults insults
Baca Selengkapnya :Biarkan Sudo Menghina Anda Saat Anda Memasukkan Kata Sandi yang Salah
10. Pelajari Lebih Lanjut Konfigurasi Sudo
Selain itu, Anda dapat mempelajari lebih lanjut sudo konfigurasi perintah dengan membaca:Perbedaan Antara su dan sudo dan Cara Mengonfigurasi sudo di Linux.
Itu dia! Anda dapat berbagi konfigurasi perintah sudo lain yang berguna atau trik dan tip dengan pengguna Linux di luar sana melalui bagian komentar di bawah.