Ci sono 3 permessi speciali che sono disponibili per file eseguibili e directory. Questi sono :
1. Permesso SUID
2. Permesso SGID
3. Sticky bit
- Set-user Identification (SUID)
- Come impostare SUID su un file?
- Impostazione dell’identificazione del gruppo (SGID)
- Autorizzazione SGID su file eseguibile
- Come impostare GUID su un file?
- SGID su una directory
- Come impostare SGID su una directory
- Sticky Bit
- Esempio di sticky bit :
- Come impostare il permesso sticky bit?
Set-user Identification (SUID)
Hai mai pensato, come un utente non-root può cambiare la propria password quando non ha il permesso di scrivere sul file /etc/shadow. hmmm… interessante, vero? Bene, per capire il trucco, controllate il permesso del comando /usr/bin/passwd :
# ls -lrt /usr/bin/passwd-r-sr-sr-x 1 root sys 31396 Jan 20 2014 /usr/bin/passwd
– Se controllate attentamente, troverete le 2 S nel campo del permesso. La prima s sta per SUID e la seconda sta per SGID.
– Quando viene eseguito un comando o uno script con il bit SUID impostato, il suo UID effettivo diventa quello del proprietario del file, piuttosto che quello dell’utente che lo sta eseguendo.
– Un altro buon esempio di SUID è il comando su :
# ls -l /bin/su -rwsr-xr-x-x 1 root user 16384 Jan 12 2014 /bin/su
– Il permesso setuid viene visualizzato come una “s” nel campo execute del proprietario.
Come impostare SUID su un file?
# chmod 4555
Se una “S” maiuscola appare nel campo execute del proprietario, indica che il bit setuid è on, e il bit execute “x” per il proprietario del file è off o negato.
Impostazione dell’identificazione del gruppo (SGID)
Autorizzazione SGID su file eseguibile
– L’autorizzazione SGID è simile all’autorizzazione SUID, l’unica differenza è che quando lo script o il comando con SGID attivato viene eseguito, viene eseguito come se fosse un membro dello stesso gruppo di cui fa parte il file.
# ls -l /usr/bin/write-r-xr-sr-x 1 root tty 11484 Jan 15 17:55 /usr/bin/write
– L’autorizzazione setgid appare come una “s” nel campo execute del gruppo.
– Se una lettera minuscola “l” appare nel campo execute del gruppo, indica che il bit setgid è on, e il bit execute per il gruppo è off o negato.
Come impostare GUID su un file?
# chmod 2555
SGID su una directory
– Quando il permesso SGID è impostato su una directory, i file creati nella directory appartengono al gruppo di cui la directory è membro.
– Per esempio se un utente con il permesso di scrittura nella directory crea un file lì, quel file è membro dello stesso gruppo della directory e non del gruppo dell’utente.
– Questo è molto utile nella creazione di directory condivise.
Come impostare SGID su una directory
# chmod g+s
Sticky Bit
– Lo sticky bit è usato principalmente nelle directory condivise.
– È utile per le directory condivise come /var/tmp e /tmp perché gli utenti possono creare file, leggere ed eseguire file di proprietà di altri utenti, ma non sono autorizzati a rimuovere file di proprietà di altri utenti.
– Per esempio se l’utente bob crea un file chiamato /tmp/bob, l’altro utente tom non può cancellare questo file anche quando la directory /tmp ha il permesso di 777. Se il bit sticky non è impostato, allora tom può cancellare /tmp/bob, poiché il file /tmp/bob eredita i permessi della directory madre.
– l’utente root (ovviamente!) e il proprietario dei file possono rimuovere i propri file.
Esempio di 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.
Come impostare il permesso sticky bit?
# chmod +t or # chmod 1777