<- home lista ->

Gestione Sudoers

autore: admin > data: 2010-12-14

 

Indice
  1. Introduzione
  2. Creazione dell'utente
  3. Visudo
    1. Alias
    2. Opzioni Defaults
    3. Autorizzazioni
  4. Fonti

1. Introduzione

Quando si ha a che fare con sistemi Unix-like ci si trova spesso davanti a dover affrontare la gestione dei permessi riguardo a determinate cartelle, in questo articolo si vedrà come impostare invece il sistema per assegnare ad un determinato utente dei privilegi diversi per un determinato programma.

Ogni qual volta che l'utente necessita di permessi particolari per accedere ad una directory o ad un comando si deve avvalere di sudo (super user do).

2. Creazione dell'utente

Il primo passo da fare è quello di creare l'utente per il quale si vogliono assegnare i privilegi di root per determinati comandi. Nel caso l'utente che si vuole utilizzare non sia presente tra quelli del sistema è necessario crearne uno nuovo tramite, in ambienti Unix-like, il comando adduser.

adduser nomeutente

3. Visudo

Una volta che nel sistema è presente l'utente sul quale operare si passa alla fase successiva: assegnargli i privilegi di root (con o senza l'ausilio di password) per un determinato comando. Per farlo si lancia il comando visudo, il quale fa apparire sul terminale una schermata simile alla seguente.

#
# This file must be edited with the "visudo" command as root.
#
# See the man page for details or how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privileges specification
root ALL =(ALL) ALL

Come si può notare il file in questione (/etc/sudoers) è suddiviso in diverse sezioni, le quali caratteristiche possono essere distinte in 3 categorie: Gestione degli alias, Impostazione delle opzioni e Gestione delle autorizzazioni.

3.1 Alias

Quando si vuole che gruppi di utenti, comandi o host abbiano gli stessi privilegi può essere utile definire gli Alias. Un Alias permette di "raggruppare" più oggetti dello stesso tipo sotto uno stesso nome.

La definizione di un Alias avviene con un comando simile al seguente e termina con un ritorno a capo.

tipo_alias NOME_ALIAS = oggetto1, oggetto2, ... oggettoN

Il nome di un alias viene sempre specificato (per convenzione) in maiuscolo e gli oggetti devono essere separati da virgole; esisitono 3 tipi di alias:

3.2 Opzioni Defaults

Oltre agli alias, prima di assegnare le autorizzazioni, è possibile impostare alcune opzioni di default per l'utilizzo di sudo. Alcune tra le opzioni più importanti sono descritte dalla seguente tabella, segue poi un breve esempio di utilizzo.

Parametri
opzionedescrioneesempi di utilizzo
syslog Se negato disabilita il logging di syslog
Valori: auth o authpriv
!syslog=auth
set_logname Se negato indica che non è necessario il parametro -u di sudo per un determinato utente. Defaults>root !set_logname
mail_always Invia una mail all'utente configurato in mailto ogni volta che un utente utilizza sudo.
Valori: on o off (default)
mail_always on
oppure
mail_always
mail_badpass Invia una mail all'utente configurato in mailto ogni volta che un utente utilizza sudo ed inserisce una password errata.
Valori: on o off (default)
mail_badpass on
oppure
mail_badpass
mail_no_user Invia una mail all'utente configurato in mailto (se settato) quando un utente non appartente al file /etc/sudoers utilizza sudo.
Valori: on (default) o off
mail_no_user off
oppure
!mail_no_user
rootpw Indica a sudo di richiedere la password di root anziché la password dell'utente richiedente per l'autenticazione.
Valori: on o off (default)
rootpw on
oppure
rootpw
passwd_timeout Indica il numerp di minuti dopo il quale sudo richiede la password all'utente.
Valori: Numeri interi o frazionari (esempio 3 o 2,5); 5 è il valore di default e 0 indica che la password viene richiesta ad ogni comando.
passwd_timeout=0
mailsub Imposta l'oggetto della e-mail inviata all'utente impostato in mailto
Valori: di default l'oggetto è: *** SECURITY information for %h ***, dove il parametro %h rappresenta il nome dell'host. Un altro parametro importante può essere %U il quale indica l'utente che ha prodotto l'eccezione.
mailsub ** BAD AUTHENTICATION: %U %h **
mailto Imposta l'indirizzo email dell'utente al quale inoltrare le e-mail di segnalazione mailto="local_mailadress"
logfile Imposta il file di log per sudo logfile=/var/log/sudo.log

Esempio di utilizzo delle opzioni Defaults:

Defaults syslog=auth
Defaults>root !set_logname
Defaults logfile=/var/log/sudo.log
Defaults mailto="admin@staff.example.com"
Defaults !mail_always
Defaults mailsub ** BAD AUTHENTICATION: %U %h **

3.3 Autorizzazioni

Le autorizzazioni rappresentano la parte fondamentale della gestione dei sudoers, a differenza delle precedenti due sezioni che spesso non servono nelle applicazioni pratiche.

Attraverso questi comandi l'amministratore ha la possibilità di assegnare ad un utente (o ad un gruppo di utenti) i provilegi per eseguire determinati comandi (o gruppi di comandi) su determinati host (o gruppi di host) come utente root. Di seguito la forma base di un'assegnamento di autorizzazioni.

lista_utenti lista_host = (utente_target) lista_comandi

Ad eccezione della lista_utenti tutti i campi possono avere anche il valore universale ALL. Entriamo un po' più nel dettaglio.

Di seguito alcuni esempi di assegnazione delle autorizzazioni

utente1 ALL = (ALL) ALL
ALIAS1 macchina1 = ALL
utente1, utente2 ALL= NOPASSWD: /percorso/assoluto/comando1

4. Fonti

wiki.ubuntu-it, Gratisoft

commenti (0) -

<- home lista ->


Fatal error: Call to undefined function sqlite_open() in /membri/earthwindow/web/articoli/index.php on line 180