GNU/Linux >> Linux Esercitazione >  >> Linux

10 Utili configurazioni di Sudoer per l'impostazione di "sudo" in Linux

In Linux e altri sistemi operativi simili a Unix, solo il root l'utente può eseguire tutti i comandi ed eseguire determinate operazioni critiche sul sistema come installare e aggiornare, rimuovere pacchetti, creare utenti e gruppi, modificare importanti file di configurazione del sistema e così via.

Tuttavia, un amministratore di sistema che assume il ruolo di utente root può consentire ad altri normali utenti di sistema con l'aiuto del comando sudo e alcune configurazioni di eseguire alcuni comandi, nonché di eseguire una serie di operazioni vitali del sistema, comprese quelle menzionate sopra.

In alternativa, l'amministratore di sistema può condividere la password dell'utente root (che non è un metodo consigliato) in modo che i normali utenti del sistema abbiano accesso all'account utente root tramite su comando.

sudo consente a un utente autorizzato di eseguire un comando come root (o un altro utente), come specificato dalla politica di sicurezza:

  1. Legge e analizza /etc/sudoers , cerca l'utente che ha richiamato e le sue autorizzazioni,
  2. quindi richiede all'utente che ha invocato una password (normalmente la password dell'utente, ma può anche essere la password dell'utente di destinazione. Oppure può essere saltata con il tag NOPASSWD),
  3. dopo di ciò, sudo crea un processo figlio in cui chiama setuid() per passare all'utente di destinazione
  4. successivamente, esegue una shell o il comando dato come argomenti nel processo figlio sopra.

Di seguito sono riportati dieci /etc/sudoers configurazioni di file per modificare il comportamento di sudo comando utilizzando Predefiniti voci.

$ 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

Tipi di voci predefinite

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

Per lo scopo di questa guida, azzereremo fino al primo tipo di Predefiniti nei moduli sottostanti. I parametri possono essere flag, valori interi, stringhe o elenchi.

Dovresti notare che i flag sono implicitamente booleani e possono essere disattivati ​​usando il '!' e le liste hanno due operatori di assegnazione aggiuntivi, += (aggiungi all'elenco) e -= (rimuove dall'elenco).

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

1. Imposta un PERCORSO sicuro

Questo è il percorso utilizzato per ogni comando eseguito con sudo, ha due importanza:

  1. Utilizzato quando un amministratore di sistema non si fida degli utenti sudo per avere una variabile di ambiente PATH sicura
  2. Per separare "percorso radice" e "percorso utente", solo gli utenti definiti da exempt_group non sono interessati da questa impostazione.

Per impostarlo, aggiungi la riga:

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

2. Abilita sudo sulla sessione di accesso utente TTY

Per consentire a sudo di essere invocato da un vero tty ma non attraverso metodi come cron o cgi-bin script, aggiungi la riga:

Defaults  requiretty   

3. Esegui il comando Sudo usando un pty

Alcune volte, gli aggressori possono eseguire un programma dannoso (come un virus o un malware) utilizzando sudo, che di nuovo biforcherebbe un processo in background che rimane sul dispositivo terminale dell'utente anche quando il programma principale ha terminato l'esecuzione.

Per evitare un tale scenario, puoi configurare sudo per eseguire altri comandi solo da un psuedo-pty utilizzando use_pty parametro, se la registrazione I/O è attivata o meno come segue:

Defaults  use_pty

4. Crea un file di registro sudo

Per impostazione predefinita, sudo registra tramite syslog(3). Tuttavia, per specificare un file di registro personalizzato, utilizzare il parametro logfile in questo modo:

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

Per registrare il nome host e l'anno a quattro cifre nel file di registro personalizzato, utilizza log_host e anno_registro parametri rispettivamente come segue:

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

Di seguito è riportato un esempio di un file di registro sudo personalizzato:

5. Log Sudo Input/Output comando

Il log_input e log_output i parametri consentono a sudo di eseguire un comando in pseudo-tty e di registrare tutti gli input dell'utente e tutti gli output inviati allo schermo in modo ricettivo.

La directory di registro I/O predefinita è /var/log/sudo-io e se è presente un numero di sequenza di sessione, viene archiviato in questa directory. Puoi specificare una directory personalizzata tramite iolog_dir parametro.

Defaults   log_input, log_output

Sono supportate alcune sequenze di escape come %{seq} che si espande in un numero di sequenza in base 36 che aumenta in modo monotono, come 000001, dove ogni due cifre vengono utilizzate per formare una nuova directory, ad es. 00/00/01 come nell'esempio seguente:

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

Puoi visualizzare il resto dei file in quella directory usando il comando cat.

6. Utenti del sudo della conferenza

Per insegnare agli utenti sudo sull'utilizzo della password nel sistema, usa la lezione parametro come di seguito.

Ha 3 possibili valori:

  1. sempre:sempre insegna a un utente.
  2. una volta – solo una lezione a un utente la prima volta che esegue il comando sudo (viene utilizzato quando non viene specificato alcun valore)
  3. mai – mai dare lezioni all'utente.
 
Defaults  lecture="always"

Inoltre, puoi impostare un file di lezione personalizzato con il file_lezione parametro, digitare il messaggio appropriato nel file:

Defaults  lecture_file="/path/to/file"

7. Mostra messaggio personalizzato quando inserisci sudo password errata

Quando un utente inserisce una password errata, viene visualizzato un determinato messaggio sulla riga di comando. Il messaggio predefinito è "scusa, riprova ”, puoi modificare il messaggio utilizzando il badpass_message parametro come segue:

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

8. Aumenta il limite di tentativi della password sudo

Il parametro passwd_tries viene utilizzato per specificare il numero di volte in cui un utente può provare a inserire una password.

Il valore predefinito è 3:

Defaults   passwd_tries=5 

Per impostare un timeout della password (l'impostazione predefinita è 5 minuti) utilizzando passwd_timeout parametro, aggiungi la riga seguente:

Defaults   passwd_timeout=2

9. Lascia che Sudo ti insulti quando inserisci una password errata

Nel caso in cui un utente digiti una password errata, sudo visualizzerà insulti sul terminale con il parametro insults. Questo disattiverà automaticamente il badpass_message parametro.

Defaults  insults 

Leggi di più :Fatti insultare da Sudo quando inserisci una password errata

10. Ulteriori informazioni sulle configurazioni di sudo

Inoltre, puoi saperne di più sudo configurazioni dei comandi leggendo:Differenza tra su e sudo e Come configurare sudo in Linux.

Questo è tutto! Puoi condividere altre utili configurazioni dei comandi sudo o trucchi e suggerimenti con gli utenti Linux disponibili tramite la sezione commenti qui sotto.


Linux
  1. Come creare un utente Sudo in Rocky Linux 8

  2. Esempi di comandi sudo in Linux

  3. PYTHONPATH non funziona per sudo su GNU/Linux (funziona per root)

  4. Controllo dell'account utente di Windows rispetto a sudo di Linux

  5. Configurazione di sudo senza password su distribuzioni Linux

Alcuni strumenti utili per gli amministratori di sistema Linux

Come abilitare il sudo senza password per l'utente in Linux

Come aggiungere utenti a Sudoer o Sudo Group su Rocky Linux 8

Guida per la configurazione del server SFTP in Linux

Linux – Aggiungi utente all'elenco di Sudoers

Impostazione del fuso orario in Linux