Limitare i comandi eseguibili da un utente con sudo
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