10 Nëtzlech Sudoers Konfiguratiounen fir Sudo a Linux ze setzen


A Linux an aner Unix-ähnlech Betribssystemer kann nëmmen de Root Benotzer all Kommandoen ausféieren a verschidde kritesch Operatiounen um System ausféieren, wéi zB Installéieren an Update, Pakete läschen, Benotzer a Gruppen erstellen, wichteg Systemkonfiguratiounsdateien änneren an sou weider.

Wéi och ëmmer, e Systemadministrator, deen d'Roll vum Root-Benotzer iwwerhëlt, kann aner normal Systembenotzer mat der Hëllef vum sudo Kommando an e puer Konfiguratiounen erlaben e puer Kommandoen auszeféieren an och eng Zuel vu vital Systemoperatiounen auszeféieren, dorënner déi uewen ernimmt.

Alternativ kann de Systemadministrator d'Root Benotzer Passwuert deelen (wat net eng recommandéiert Method ass), sou datt normal System Benotzer Zougang zum Root Benotzerkont iwwer su Kommando hunn.

sudo erlaabt engem erlaabt Benotzer e Kommando als Root (oder en anere Benotzer) auszeféieren, wéi vun der Sécherheetspolitik spezifizéiert:

  1. Et liest a parséiert /etc/sudoers, kuckt den uruffende Benotzer a seng Permissiounen op,
  2. da freet den uruffende Benotzer no engem Passwuert (normalerweis d'Passwuert vum Benotzer, awer et kann och d'Passwuert vum Zilbenotzer sinn. Oder et kann mam NOPASSWD Tag iwwersprangen ginn),
  3. duerno erstellt sudo e Kandprozess an deem se setuid() nennt fir op den Zilbenotzer ze wiesselen
  4. nächst fiert et eng Shell oder de Kommando aus, deen als Argumenter am Kannerprozess hei uewen uginn ass.

Drënner sinn zéng /etc/sudoers Dateikonfiguratiounen fir d'Behuele vum sudo Kommando z'änneren mat Default Entréen.

$ sudo cat /etc/sudoers
#
# 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
Defaults                parameter,   parameter_list     #affect all users on any host
[email _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

Fir den Ëmfang vun dësem Guide wäerte mir null erof op déi éischt Aart vun Defaults an de Formen hei drënner. Parameter kënne Fändelen, ganz Zuelen, Strings oder Lëschte sinn.

Dir sollt bemierken datt d'Fändelen implizit boolesch sinn a kënne mat dem ! Bedreiwer ausgeschalt ginn, an d'Lëschte hunn zwee zousätzlech Aufgabsbetreiber, += (an d'Lëscht bäisetzen) an -= (vun der Lëscht ewechhuelen).

Defaults     parameter
OR
Defaults     parameter=value
OR
Defaults     parameter -=value   
Defaults     parameter +=value  
OR
Defaults     !parameter       

1. Set eng sécher PATH

Dëst ass de Wee benotzt fir all Kommando mat sudo lafen, et huet zwou Wichtegkeeten:

  1. Gebraucht wann e Systemadministrator Sudo Benotzer net vertraut fir eng sécher PATH Ëmfeldvariabel ze hunn
  2. Fir den \rootpath\ an \user path\ ze trennen, sinn nëmme Benotzer definéiert vun exempt_group net vun dëser Astellung betraff.

Fir et ze setzen, füügt d'Linn derbäi:

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

2. Aktivéiert sudo op TTY Benotzer Login Sessioun

Fir Sudo z'erméiglechen aus engem richtegen Tty opgeruff ze ginn awer net duerch Methoden wéi Cron oder cgi-bin Scripten, füügt d'Linn derbäi:

Defaults  requiretty   

3. Run Sudo Kommando Mat engem pty

E puer Mol kënnen Ugräifer e béiswëlleg Programm (wéi e Virus oder Malware) mat Sudo ausféieren, wat erëm en Hannergrondprozess fortgeet, deen um Terminalapparat vum Benotzer bleift, och wann den Haaptprogramm fäerdeg ass auszeféieren.

Fir esou e Szenario ze vermeiden, kënnt Dir Sudo konfiguréieren fir aner Kommandoen nëmme vun engem Psuedo-Pty auszeféieren andeems Dir de Parameter use_pty benotzt, egal ob I/O Logging ageschalt ass oder net wéi follegt:

Defaults  use_pty

4. Schafen eng Sudo Log Datei

Par défaut protokolléiert sudo duerch syslog (3). Wéi och ëmmer, fir eng personaliséiert Log Datei ze spezifizéieren, benotzt de Logfile Parameter sou:

Defaults  logfile="/var/log/sudo.log"

Fir Hostnumm an dat véierziffer Joer an der personaliséierter Logdatei ze protokolléieren, benotzt log_host a log_year Parameteren respektiv wéi follegt:

Defaults  log_host, log_year, logfile="/var/log/sudo.log"

Drënner ass e Beispill vun enger personaliséierter Sudo Log Datei:

5. Log Sudo Kommando Input/Ausgang

D'log_input a log_output Parameteren erméiglechen sudo fir e Kommando a Pseudo-tty auszeféieren an all Benotzerinput an all Output empfänkt op den Ecran ze protokolléieren.

De Standard I/O Log Verzeechnes ass /var/log/sudo-io, a wann et eng Sessiounssequenznummer gëtt, gëtt se an dësem Verzeechnes gespäichert. Dir kënnt e personaliséierte Verzeechnes duerch den iolog_dir Parameter spezifizéieren.

Defaults   log_input, log_output

Et ginn e puer Fluchsequenzen ënnerstëtzt wéi %{seq} déi sech op eng monoton Erhéijung vun der Basis-36 Sequenznummer erweidert, wéi 000001, wou all zwou Ziffere benotzt gi fir en neien Verzeechnes ze bilden, z.B. 00/00/01 wéi am Beispill hei ënnen:

$ cd /var/log/sudo-io/
$ ls
$ cd  00/00/01
$ ls
$ cat log

Dir kënnt de Rescht vun de Fichieren an deem Verzeichnis mat dem Cat Kommando kucken.

6. Virtrag Sudo Benotzer

Fir Sudo Benotzer iwwer d'Passwuertverbrauch am System ze liesen, benotzt de Virtragsparameter wéi hei ënnen.

Et huet 3 méiglech Wäerter:

  1. ëmmer - ëmmer e Benotzer virzéien.
  2. eemol - liest e Benotzer nëmmen déi éischte Kéier wann se sudo Kommando ausféieren (dëst gëtt benotzt wann kee Wäert uginn ass)
  3. ni - ni de Benotzer virzéien.

 
Defaults  lecture="always"

Zousätzlech kënnt Dir eng personaliséiert Virliesungsdatei mat dem lecture_file Parameter setzen, gitt de passenden Message an der Datei:

Defaults  lecture_file="/path/to/file"

7. Show Custom Message Wann Dir falsch sudo Passwuert gitt

Wann e Benotzer e falscht Passwuert agitt, gëtt e bestëmmte Message op der Kommandozeil ugewisen. D'Standardmeldung ass sorry, probéiert nach eng Kéier, Dir kënnt de Message mam Badpass_message Parameter änneren wéi follegt:

Defaults  badpass_message="Password is wrong, please try again"

8. Erhéijung sudo Passwuert probéiert Limit

De Parameter passwd_tries gëtt benotzt fir d'Zuel vun Mol ze spezifizéieren e Benotzer kann probéieren e Passwuert anzeginn.

De Standardwäert ass 3:

Defaults   passwd_tries=5 

Fir e Passwuert Timeout ze setzen (Standard ass 5 Minutten) mam passwd_timeout Parameter, füügt d'Linn hei drënner:

Defaults   passwd_timeout=2

9. Loosst Sudo Dir beleidegt Wann Dir falsch Passwuert gitt

Am Fall wou e Benotzer e falscht Passwuert tippt, weist sudo Beleidegungen um Terminal mam Beleidegungsparameter. Dëst wäert automatesch de Badpass_message Parameter ausschalten.

Defaults  insults 

Liest méi: Loosst de Sudo Iech beleidegen wann Dir falsch Passwuert agitt

10. Léieren Méi Sudo Configuratioun

Zousätzlech kënnt Dir méi sudo Kommando Konfiguratiounen léieren andeems Dir liest: Ënnerscheed tëscht su a sudo a Wéi konfiguréieren sudo am Linux.

Dat ass et! Dir kënnt aner nëtzlech sudo Kommando Konfiguratiounen oder Tricks an Tipps mat Linux Benotzer dobaussen iwwer d'Kommentarsektioun hei drënner deelen.