Sono disponibili 3 autorizzazioni speciali per i file e le directory eseguibili. Questi sono:
2. Autorizzazione SGID
3. Un po' appiccicoso
Identificazione dell'utente impostato (SUID)
Hai mai pensato a come un utente non root può cambiare la propria password quando non ha il permesso di scrittura nel file /etc/shadow. mmm... interessante no? Bene per capire il trucco controlla l'autorizzazione 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 controlli attentamente, troverai le 2 S nel campo dei permessi. 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 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
– L'autorizzazione setuid visualizzata come una "s" nel campo di esecuzione del proprietario.
Come impostare SUID su un file?
# chmod 4555 [path_to_file]Nota :
Se nel campo di esecuzione del proprietario viene visualizzata una "S" maiuscola, significa che il bit setuid è attivo e che il bit di esecuzione "x" per il proprietario del file è disattivato o negato.
Identificazione gruppo di insiemi (SGID)
Autorizzazione SGID su file eseguibile
– L'autorizzazione SGID è simile all'autorizzazione SUID, l'unica differenza è:quando viene eseguito lo script o il comando con SGID attivo, viene eseguito come se fosse un membro dello stesso gruppo di cui è membro 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 viene visualizzata come una "s" nel campo di esecuzione del gruppo.
Nota :– Se nel campo di esecuzione del gruppo viene visualizzata una "l" minuscola, indica che il bit setgid è attivo e il bit di esecuzione per il gruppo è disattivato o negato.
Come impostare il GUID su un file?
# chmod 2555 [path_to_file]
SGID su una directory
– Quando l'autorizzazione SGID è impostata su una directory, i file creati nella directory appartengono al gruppo di cui la directory è membro.
– Ad esempio, se un utente che dispone dell'autorizzazione di scrittura nella directory crea un file lì, quel file è un membro dello stesso gruppo della directory e non del gruppo dell'utente.
– Ciò è molto utile nella creazione di directory condivise.
Come impostare SGID su una directory
# chmod g+s [path_to_directory]
Punto appiccicoso
– Lo sticky bit viene utilizzato principalmente su directory condivise.
– È utile per directory condivise come /var/tmp e /tmp perché gli utenti possono creare file, leggere ed eseguire file di proprietà di altri utenti, ma non possono rimuovere file di proprietà di altri utenti.
– Ad esempio, se l'utente bob crea un file denominato /tmp/bob, l'altro utente tom può non eliminare questo file anche quando la directory /tmp ha il permesso di 777. Se sticky bit non è impostato, tom può eliminare /tmp/bob, poiché il file /tmp/bob eredita i permessi della directory padre.
– utente root (Ovviamente!) e il proprietario dei file possono rimuovere i propri file.
Esempio di bit appiccicoso:
# ls -ld /var/tmp drwxrwxrwt 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 l'autorizzazione per i bit permanenti?
# chmod +t [path_to_directory] or # chmod 1777 [path_to_directory]