SUID / SGID / Sticky bit

Naast de gewone lees-, schrijf- en uitvoerrechten kent Linux drie speciale permissiebits.

SUID (Set User ID)

Een uitvoerbaar bestand met de SUID-bit draait altijd met de rechten van de eigenaar, niet van de gebruiker die het start. Zo kan een gewone gebruiker passwd uitvoeren — dat programma heeft root als eigenaar en moet /etc/shadow kunnen schrijven.

ls -l /usr/bin/passwd
# -rwsr-xr-x 1 root root ...
#    ^ de 's' op de x-positie van de eigenaar = SUID

SGID (Set Group ID)

Op bestanden werkt SGID hetzelfde als SUID maar dan voor de groep. Op mappen zorgt SGID ervoor dat nieuwe bestanden de groep van de map erven in plaats van de primaire groep van de maker — handig voor gedeelde mappen.

Sticky bit

Op een map voorkomt de sticky bit dat gebruikers elkaars bestanden verwijderen, ook al hebben ze schrijfrechten op de map. /tmp gebruikt dit standaard.

ls -ld /tmp
# drwxrwxrwt ... /tmp
#          ^ de 't' = sticky bit

Instellen

chmod u+s bestand     # SUID zetten
chmod g+s map/        # SGID zetten
chmod +t /gedeeld/    # sticky bit zetten
chmod 4755 bestand    # SUID via octaal (4xxx)

Zie ook

  • permissies — de gewone lees/schrijf/uitvoerrechten
  • sudo — veiliger alternatief voor SUID-root programma's
  • acl — uitgebreidere toegangscontrole
linuxbeveiligingpermissies