====== sudo====== [[linux:linux|{{ :dokuwiki:tux.png?120|}}]] ===== context===== dit document beschrijft de werking van sudo. Hiermee laat je gebruikers toe om bepaalde acties uit te voeren met andere privileges (vaak: root) zonder het wachtwoord uit handen te geven. ===== werking===== * laat je commando voorafgaan door **su** om cmd met root-rechten uit te voerensudo useradd -c "New kid" -m kid01 * als een wachtwoord wordt gevraagd, geef dan je gebruikerswachtwoord in \\ het commando wordt uitgevoerd als een andere gebruiker. * om je verleende rechten na te kijken: sudo -l * als je een commando probeert uit te voeren waarvoor je geen rechten hebt, wordt opnieuw een wachtwoord prompt gegeven: We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. [sudo] password for jveys: Dit geldt ook voor commando's die niet correct werden gedefinieerd in de configuratie. ===== configuratie ===== * bij voorkeur via ''visudo'' omdat er dan een syntax controle wordt uitgevoerd. * toegangrechten kan je instellen op volgende niveaus: * gebruiker/groep * host waarop je commando mag uitvoeren * gebruiker waaronder je het commando mag uitvoeren * commando dat je mag uitvoeren * voorbeeld: %ApacheAdmin node02=(www-data) /usr/bin/systemctl restart apache2 leden van de groep ApacheAdmin mogen op node02 een herstart van Apache doen als gebruiker www-data * hosts, gebruikers, commando's kan je bundelen in **aliassen** * voorbeeld: Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount * let erop steeds het volledige (en correcte!) **pad naar het uitvoerbaar bestand** te vermelden. Anders faalt je commando. * met de optie ''NOPASSWD:'' moet de gebruiker niet bijkomend aanmelden.\\ voorbeeld: user.name ALL=(ALL:ALL) NOPASSWD:ALL * om wat onderverdeling in verschillende configs te maken, kan je best je configuratie bewaren onder /etc/sudoers.d/.\\ Je kan die dan bewerken ahv ''visudo -f /etc/sudoers.d/''.\\ Als je een programma verdeelt via een pacakge manager kan je je sudo configuratie op die manier meesturen. ===== voorbeeld ===== * standaard CentOS configuratie vind je hier in [[https://github.com/kveys/linux/blob/master/sudoers|github]]. ===== logging ===== * acties worden standaard geloged naar /var/log/secure {{ :linux:sudologsession.png?600 |}} * bemerk hoe er tijdelijk een sessie als een andere gebruiker wordt gestart: ''session opened for user root by ...'' ===== problemen, problemen ===== * de meeste problemen zijn gevolg van 2 fouten: * commando wordt uitgevoerd waarvoor de gebruiker geen rechten heeft * het commando staat niet correct gedefinieerd in de configuratie. * wachtwoord prompt wordt getoond ook al staat ''NOPASSWD:'' in de configuratie. * controleer dat pad naar het commando correct gedefinieerd staat in de configuratie. ===== meer info ===== voeg hier linken toe naar verdere uitleg {{tag>Linux}}