Setuid e Setgid sono termini Unix, abbreviazioni per "Set User ID" e "Set Group ID", rispettivamente. Setuid, a volte chiamato anche "suid", e "setgid" sono permessi di accesso che possono essere assegnati a file o directory su un sistema operativo basato su Unix. Vengono principalmente utilizzati per consentire agli utenti del sistema di eseguire temporaneamente binari con privilegi elevati per eseguire un'attività specifica.
Queste autorizzazioni sono le seguenti:
IMPOSTA UID
set-user-ID-on-executionConsente che, quando un file viene eseguito, venga eseguito con i privilegi del proprietario. Ad esempio, se dobbiamo esercitare i privilegi di root per poter accedere a un determinato modulo, scrivere su log, leggere/scrivere dispositivi, ecc.
SGID, set-group-ID-on-execution consente che, quando un file viene eseguito, venga eseguito con i privilegi del gruppo che possiede il file.
Rendere SET UID e GID a file e directory, generalmente a quest'ultimo, consentirà una "ereditarietà" di caratteristiche dalla directory precedente alla successiva, e tutti i file/directory che vengono generati/creati/copiati nelle directory SET GID avrà le caratteristiche della directory padre.
GID è generalmente consentito affinché gli utenti di un gruppo possano lavorare con i file dello stesso gruppo, UID sarà in grado di cambiare il proprietario del file e i permessi per un'altra persona nel GRUPPO, se l'opzione "cliccabile" è attiva .
IMPOSTA GI
SET GID è un'opzione interessante anche se molti utenti accedono a un sistema di archiviazione comune
- SAMBA
- FTP
- HTTP
- Banche dati
Esempio per implementare SET UID e GID
Dal terminale svolgiamo le seguenti attività:
Creiamo una directory di esempio:
[root @ root] mkdir ESEMPIOElenchiamo la directory:
[root @ root] vdirModifichiamo i permessi della directory in modo che possano accedere solo gli utenti del gruppo "programmatori", i permessi sono parametri del comando chmod e sono il prossimo
+ s: per attivare la modalità suid
g + s: per attivare la modalità sgid
[root @ root] # chown user.programmers
[root @ root] # chmod g + s ESEMPIO
[radice @ radice] # vdirElenchiamo la directory e vedremo il contenuto
4 drwxrwxrwx 2 programmatori utente ESEMPIOPer impostazione predefinita, nessun utente che non appartenga al gruppo "programmatori" sarà in grado di lavorare con i file in quella directory. D'altra parte, gli utenti del gruppo saranno in grado di lavorare con i file a seconda dei loro attributi che gli utenti hanno, se hanno i permessi di sola lettura o scrittura.
Alcuni software e servizi come Samba, FTP, HTTPHanno caratteristiche speciali che non sono disciplinate da queste regole e le completano arricchendole.
Ora che abbiamo creato il SET UID e il GID, se creiamo un file o una directory all'interno dell'esempio da qualsiasi utente, erediterà le caratteristiche che abbiamo definito in precedenza, indipendentemente da chi l'ha creato e dai permessi che ha.
Ad esempio possiamo dire se creiamo un file report.txt nella directory EXAMPLE e l'utente che lo ha creato è root, e tuttavia il gruppo è programmatori, il gruppo a cui apparterrà il file sarà programmatori.
Poiché la directory ESEMPIO è con gli attributi: drwxrwsrwx, indicando che la directory è SET GID, tutti i file creati in essa apparterranno all'utente e al gruppo indicato dal SET GID.
Se vediamo un elenco con diversi file, sarebbe simile a questo:
4 drwxr-Sr-x 2 programmatori jose 4096 home.html 4 drwxr-Sr-x 2 programmatori carlos 4096 dependencies.txt 4 drwxr-Sr-x 2 programmatori root 4096 report-project.odfSpero che questo tutorial ti sia d'aiuto. Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo