5 Konfigurasi Sudoers yang Berguna untuk Mengatur ‘sudo’ di Linux

Di Linux dan sistem operasi mirip Unix lainnya, hanya pengguna root yang dapat menjalankan semua perintah dan melakukan operasi  tertentu pada sistem seperti menginstal dan memperbarui, menghapus paket, membuat pengguna dan grup , memodifikasi file konfigurasi sistem yang penting dan sebagainya.

Namun, administrator sistem yang mengasumsikan peran 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  sehingga pengguna sistem normal memiliki akses ke akun pengguna root melalui perintah su .

sudo memungkinkan pengguna yang diizinkan untuk menjalankan perintah sebagai root (atau pengguna lain), sebagaimana ditentukan oleh kebijakan keamanan:

  1. Itu membaca dan mem-parsing /etc/sudoers , mencari pengguna dengan izin aksesnya,
  2. kemudian meminta pengguna yang meminta kata sandi (biasanya kata sandi pengguna, tetapi juga bisa menjadi kata sandi pengguna target. Atau dapat dilewati dengan tag NOPASSWD),
  3. setelah itu, sudo membuat proses turunan di mana ia memanggil setuid () untuk beralih ke pengguna target
  4. selanjutnya, ia mengeksekusi shell atau perintah yang diberikan sebagai argumen dalam proses di atas.

Di bawah ini adalah lima / etc / sudoers konfigurasi file untuk mengubah perilaku perintah sudo menggunakan entri Defaults

$ sudo cat /etc/sudoers

dibawah ini adalah isi file 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

Untuk cakupan panduan ini, kami akan nol ke tipe Default pertama dalam formulir di bawah ini. Parameter dapat berupa flag, nilai integer, string, atau daftar.

Anda harus mencatat bahwa flag secara implisit adalah 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

Tetapkan PATH Dengan Aman

Ini adalah jalur yang digunakan untuk setiap perintah yang dijalankan dengan sudo, ini memiliki dua hal penting:

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 yang tidak terpengaruh oleh pengaturan ini.
Untuk mengaturnya, tambahkan baris:

secure_path = "/ usr / local / sbin: / usr / local / bin: / usr / sbin: / usr / bin: / sbin: / bin: / snap / bin"

Aktifkan sudo pada Sesi Login Pengguna TTY

Untuk memungkinkan sudo dipanggil dari tty asli tetapi tidak melalui metode seperti skrip cron atau cgi-bin , tambahkan baris:

defaults requiretty

Jalankan Perintah Sudo Menggunakan pty

Beberapa kali, penyerang dapat menjalankan program jahat (seperti virus atau malware) menggunakan sudo, yang akan kembali melakukan 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_ptyparameter, apakah pencatatan I / O dihidupkan atau tidak sebagai berikut:

use_pty default

Buat File Log Sudo

Secara default, sudo mencatat melalui syslog (3). Namun, untuk menentukan file log khusus, gunakan parameter logfile seperti:

File log default = "/var/log/sudo.log"
Untuk log hostname dan tahun empat digit dalam file log kustom, penggunaan log_host dan log_year parameter masing-masing sebagai berikut:
log_host default, log_year, logfile = "/var/log/sudo.log"

Log Sudo Command Input / Output

log_input dan log_output parameter memungkinkan sudo untuk menjalankan perintah dalam pseudo-tty dan log semua input pengguna dan semua output dikirim ke layar reseptif.

Direktori log I / O default adalah / var / log / sudo-io , dan jika ada nomor urut sesi, ia disimpan dalam direktori ini. Anda dapat menentukan direktori khusus melalui parameter iolog_dir .

Log_input default, log_output
Ada beberapa urutan pelarian yang didukung seperti %{seq}yang meluas ke nomor urutan basis-36 yang meningkat secara monoton, seperti 000001, di mana setiap dua digit digunakan untuk membentuk direktori baru, misalnya 00/00/01 seperti pada contoh di bawah ini:
$ cd /var/log/sudo-io /
$ ls
$ cd 00/00/01
$ ls
$ cat log