Limitare i comandi eseguibili da un utente con sudo

From RVM Wiki
Jump to navigation Jump to search

Per permettere ad un utente di poter eseguire solo determinati comandi con sudo, modificare il file /etc/sudoers.conf, solo ed esclusivamente tramite il comando:

visudo

che controlla la validità e sintassi di questo file di configurazione.

Consentire ad un utente di eseguire solo alcunic omandi come root

sudo visudo
...
# Cmnd alias specification
Cmnd_Alias      PROXY = /usr/local/sbin/modifica_utenti_illimitati,\
                        /usr/local/sbin/modifica_utenti_limitati,\
                        /usr/local/sbin/modifica_siti_permessi,\
                        /sbin/poweroff
# User privilege specification
root            ALL=(ALL) ALL
mnt.vvngrl      ALL=(ALL) ALL
mnt.gzzgng      ALL=(ALL) PROXY

In pratica si definisce un alias chiamato PROXY per l'elenco dei comandi indicati di seguito.

ATTENZIONE: i comandi devono esistere, essere specificati con il percorso completo, ed essere eseguibili, altrimenti visudo rileverà un errore.

Di seguito si indica che l'utente mnt.vvngrl può eseguire qualsiasi comando', mentre l'utente mnt.gzzgng può eseguire solo i comandi elencati nell'alias PROXY.

In pratica la sintassi è

username HOSTS=(userallowed) COMMAND_ALIASES

Appena salvato il file, le modifiche diventano attive.

Nota: naturalmente (o no notoralmente, se si preferisce), l'utente mnt.gzzgng potrà sempre eseguire QUALSIASI comando come utente normale.

Consentire ad un utente di eseguire solo alcuni comandi solo come un utente specifico

Ad esempio si vuole che l'utente backup possa eseguire solo i comandi BACKUPPC come utente backuppc, usare la sintassi:

 Cmnd_Alias BACKUPPC =  /usr/share/backuppc/bin/BackupPC_dump, \
                       /usr/share/backuppc/bin/BackupPC_link

 backup      ALL=(backuppc) NOPASSWD: BACKUPPC

Se poi si vuole aggiungere anche il fatto di far eseguire a backup solo i comandi SNAPSHOTS come root, aggiungere anche:


Cmnd_Alias SNAPSHOTS = /sbin/lvcreate, /bin/mount, \
                       /sbin/lvremove, /bin/umount

backup      ALL=(root) NOPASSWD: SNAPSHOTS

Riferimenti

  • man sudoers