Home > varie > limitare il sudo in un certo path

limitare il sudo in un certo path

aprile 11, 2011

Ho un problema.
devo limitare sudo in un certo path

ovvero devo poter lanciare un pool di comandi solo in un certo dominio ad esempio : /home

Come faccio a configurare sudo per fare questo ?

questi due link possono dare una mano:
http://linsec.ca/Using_Sudo_to_Limit_Access
http://www.sudo.ws/pipermail/sudo-users/2006-August/002927.html

In pratica basta configurare /etc/sudoers in questo modo :

1. Definisco i command_alias che il mio utente potra usare
2. Allego subito dopo il comando specificato il dominio di esistenza (il path limite) con un bell’asterisco finale (se voglio che il dominio comprenda le sottodirectory)

3. Configuro il sudo il mio utente con poche capacità

in pratica:

# visudo

aggiungo la linea:

## Custom
Cmnd_Alias CUSTOM = /bin/ls /home/*, /bin/rm /home/*, /bin/mkdir /home/*, /bin/touch /home/*, /bin/cat /home/*

e infine aggiungo la definizione del mio piccolo e limitato utente che potra lanciare i comandi diventanto utente oracle

user ALL=(oracle) CUSTOM

per completare il gioco, bisogna inserire gli utente nel gruppo wheels (altrimenti non saranno abilitati al sudo )
e Ovviamente gli utenti devono esistere …🙂

Dopodiche per provare che tutto funzioni possiamo lanciare il comando :

sudo -u oracle ls /home/

sudo -u oracle mkdir /home/prova
sudo -u oracle rm -rf /home/prova

Se tutto funziona non avremo strani output, ma se proviamo a muoverci fuori dal dominio:

[user@myserver~]$ sudo -u oracle ls /home/
Password:
Sorry, user user is not allowed to execute ‘/bin/ls /home/’ as oracle on myserver.example.com

figo eh ?
😉

Categorie:varie