Det finns tre särskilda behörigheter som är tillgängliga för körbara filer och kataloger. Dessa är :
1. SUID-behörighet
2. SGID-behörighet
3. Sticky bit
Set-user Identification (SUID)
Har du någonsin tänkt på hur en användare som inte är root-användare kan ändra sitt eget lösenord när han inte har skrivbehörighet till filen /etc/shadow. hmmm… intressant eller hur? För att förstå tricket kan du kontrollera behörigheten för kommandot /usr/bin/passwd :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Om du kollar noga hittar du 2 S:n i behörighetsfältet. Det första s:et står för SUID och det andra för SGID.
– När ett kommando eller skript med SUID-biten inställd körs blir det effektiva UID:et för filens ägare, snarare än för den användare som kör det.
– Ett annat bra exempel på SUID är kommandot su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Behörigheten setuid visas som ett ”s” i ägarens execute-fält.
Hur ställer man in SUID på en fil?
# chmod 4555
Om ett stort ”S” visas i ägarens execute-fält indikerar det att setuid-biten är aktiverad och execute-biten ”x” för filens ägare är avstängd eller nekad.
Set-group identification (SGID)
SGID-behörighet på körbar fil
– SGID-behörigheten liknar SUID-behörigheten, enda skillnaden är – när skriptet eller kommandot med SGID på körs, körs det som om det vore medlem i samma grupp som filen är medlem i.
# ls -l /usr/bin/write-r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– Setgid-behörigheten visas som ett ”s” i gruppens execute-fält.
– Om en liten bokstav ”l” visas i gruppens execute-fält indikerar det att setgid-biten är aktiverad och att execute-biten för gruppen är avstängd eller nekad.
Hur ställer man in GUID på en fil?
# chmod 2555
SGID på en katalog
– När SGID-behörigheten är inställd på en katalog tillhör filer som skapas i katalogen den grupp som katalogen är medlem i.
– Om t.ex. en användare som har skrivbehörighet i katalogen skapar en fil där, är den filen medlem i samma grupp som katalogen och inte användarens grupp.
– Detta är mycket användbart när man skapar delade kataloger.
Hur man ställer in SGID på en katalog
# chmod g+s
Sticky Bit
– Sticky Bit används främst på delade kataloger.
– Den är användbar för delade kataloger som /var/tmp och /tmp eftersom användare kan skapa filer, läsa och köra filer som ägs av andra användare, men får inte ta bort filer som ägs av andra användare.
– Om användaren bob till exempel skapar en fil som heter /tmp/bob kan den andra användaren tom inte ta bort denna fil även om katalogen /tmp har behörigheten 777. Om sticky bit inte är inställd kan tom ta bort /tmp/bob, eftersom filen /tmp/bob ärver den överordnade katalogens behörigheter.
– Rootanvändaren (Naturligtvis!) och ägaren av filerna kan ta bort sina egna filer.
Exempel på sticky bit :
# ls -ld /var/tmpdrwxrwxrwt 2 sys sys 512 Jan 26 11:02 /var/tmp
- T refers to when the execute permissions are off.- t refers to when the execute permissions are on.
Hur ställer man in behörigheten sticky bit?
# chmod +t or # chmod 1777
.