GNU/Linux >> Belajar Linux >  >> Linux

10 Konfigurasi Sudoers yang Berguna untuk Mengatur 'sudo' di Linux

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:

  1. Membaca dan mem-parsing /etc/sudoers , mencari pengguna yang memanggil dan izinnya,
  2. kemudian meminta sandi pengguna yang meminta (biasanya sandi pengguna, tetapi bisa juga sandi pengguna target. Atau dapat dilewati dengan tag NOPASSWD),
  3. setelah itu, sudo membuat proses anak yang memanggil setuid() untuk beralih ke pengguna target
  4. 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:

  1. Digunakan ketika administrator sistem tidak mempercayai pengguna sudo untuk memiliki variabel lingkungan PATH yang aman
  2. 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:

  1. selalu – selalu menceramahi pengguna.
  2. sekali – hanya memberi kuliah pengguna saat pertama kali mereka menjalankan perintah sudo (ini digunakan ketika tidak ada nilai yang ditentukan)
  3. 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.


Linux
  1. Jalankan container di Linux tanpa Sudo di Podman

  2. 20 perintah Linux penting untuk setiap pengguna

  3. Cara Mengatur Hak Istimewa Sudo untuk Pengguna di Linux

  1. Menginstal dan mengatur Grafana di linux

  2. 11 Perangkat Lunak CAD Terbaik untuk Linux

  3. Contoh Perintah sudo di Linux

  1. Cara Menemukan Semua Pengguna Sudo Di Linux

  2. Cara Membuat Pengguna Sudo di Rocky Linux 8

  3. Menyiapkan sudo tanpa kata sandi di distribusi Linux