Permessi in linux
Table of Contents
1. Premessa
In linux tutto e' un file comprese le periferiche e l'accesso e' regolato da permessi secondo lo schema seguente
Tipo File: | Carattere | Tipo di file | Costante POSIX (`S_IFXXX`) | | --------- | ----------------------- | -------------------------- | | `-` | File normale (regolare) | `S_IFREG` | | `d` | Directory | `S_IFDIR` | | `l` | Link simbolico | `S_IFLNK` | | `c` | Dispositivo a caratteri | `S_IFCHR` | | `b` | Dispositivo a blocchi | `S_IFBLK` | | `p` | FIFO (named pipe) | `S_IFIFO` | | `s` | Socket Unix | `S_IFSOCK` | Permessi : r = permesso di lettura w = permesso di scrittura x = permesso di esecuzione s = SUID - a volte si trova al posto della x, indica che l\'esecuzione avviene con i privilegi dell\'utente proprietario del file - = mancanza del permesso relativo alla posizione Visualizzazione : [ ][rwx][rwx][rwx] ^ ^ ^ ^ | | | | | | | +- altri utenti | | +------ gruppo | +----------- utente proprietario +--------------- Tipo File
1.1. BIT SUID
Utilizzato ad esempio per il comando passwd che modifica la password utente cambiando il contenuto del file shadow a cui ha accesso solo l'utente root. Ogni utente per la durata del processo ha i privelegi di root non essendolo. Funziona solo con programmi compilati e non con script interpretati .
1.1.1. PERICOLO
Se non implemento nel codice del programma meccanismi di sicurezza che verifichino le effettive autorizzazioni utente rischio che cambiando il proprietario (\(chown root:root nome_file\)) e impostando il bit SUID (\(chmod +s nome_file\)) riesco ad eseguire comandi root anche se non lo sono. Per verificare le varie possibilita' per sfruttare permessi SUID malconfigurati vds il link GTFOBins .
1.1.2. ARGOMENTI CORRELATI
- ID utente nei processi