Che cosa significa effettivamente GID?

Lho cercato su Google e questo è ciò che linux.about.com ha detto:

Numero di identificazione del gruppo per il processo. I numeri di gruppo validi sono forniti nel /etc/group e nel campo GID del file /etc/passwd. Quando un processo viene avviato, il suo GID è impostato sul GID del suo processo genitore.

  • Ma cosa significa?

Le autorizzazioni che ho per la mia cartella sono attualmente a 0755

Capisco che se imposto lUID per il proprietario sarà 4755

E se imposto il GID del gruppo sarà 2755

Se Se imposto Sticky Bit per gli altri, sarà 1755

  • È anche importante impostare quei permessi?

Risposta

Ogni processo in un sistema simile a UNIX, proprio come ogni file, ha un proprietario (lutente, reale o di sistema “pseudo -user “, come daemon, bin, man e così via) e un gruppo proprietario. Il proprietario del gruppo per i file di un utente è in genere il gruppo principale di tale utente e, in modo simile, tutti i processi avviati sono in genere di proprietà del tuo ID utente e del tuo ID gruppo principale.

A volte Tuttavia, è necessario disporre di privilegi elevati per eseguire determinati comandi, ma non è consigliabile concedere pieni diritti amministrativi. Ad esempio, il comando passwd richiede laccesso al file della password shadow del sistema, in modo che possa aggiornare la tua password. Ovviamente, non vuoi dare a ogni utente privilegi di root, solo così possono reimpostare la password – questo porterebbe senza dubbio al caos! Invece, ci deve essere un altro modo per concedere temporaneamente privilegi elevati agli utenti per eseguire determinate attività. Ecco a cosa servono i bit SETUID e SETGID. È un modo per dire al kernel di aumentare temporaneamente i privilegi dellutente, per la durata dellesecuzione del comando contrassegnato. Verrà eseguito un binario SETUID con i privilegi del proprietario del file eseguibile (solitamente root) e un binario SETGID verrà eseguito con i privilegi di gruppo del proprietario del gruppo delleseguibile file. Nel caso del comando passwd, che appartiene a root ed è SETUID, consente agli utenti normali di influenzare direttamente il contenuto della password file, in modo controllato e prevedibile, eseguendolo con i privilegi di root. Esistono numerosi altri comandi SETUID su sistemi tipo UNIX (chsh, screen, ping, su, ecc.), che richiedono tutti privilegi elevati per funzionare correttamente. Esistono anche alcuni SETGID programmi, in cui il kernel modifica temporaneamente il GID del processo, per consentire laccesso ai file di registro, ecc. sendmail è unutilità di questo tipo.

sticky bit ha uno scopo leggermente diverso. Il suo utilizzo più comune è garantire che solo laccount utente che ha creato un file possa eliminarlo. Pensa alla directory /tmp. Ha autorizzazioni molto liberali, che consentono a chiunque di creare file lì. Ciò è positivo e consente ai processi degli utenti di creare file temporanei (screen, ssh e così via, conserva le informazioni sullo stato in /tmp). Per proteggere i file temporanei di un utente, /tmp ha impostato lo sticky bit, in modo che solo io posso eliminare i miei file e solo tu puoi elimina il tuo. Ovviamente root può fare qualsiasi cosa, ma dobbiamo sperare che lamministratore di sistema non sia squilibrato!

Per i file normali (cioè, per i file non eseguibili), non ha senso impostare il SETUID / SETGID bit. SETGID nelle directory su alcuni sistemi controlla il proprietario del gruppo predefinito per i nuovi file creati in quella directory.

Commenti

  • Ah fantastico, grazie per questo. Quindi, lo sticky bit è come un permesso personale (utente)? La risposta era ben formulata e comprensibile.
  • Grazie! Lo sticky bit fornisce una piccola protezione per i file in una directory con liberal autorizzazioni. ‘ non è realmente specifico per un determinato utente, poiché lo stesso livello di protezione è garantito a tutti i file, indipendentemente dal proprietario. ‘ è un modo per consentire a chiunque di creare file e per garantire che solo il proprietario possa distruggerli.
  • +1, D_bye, potresti condividere un esempio per setgid bit impostato sulla directory.Grazie
  • @Ankit Under Solaris (e quasi certamente altri – io uso solo * BSD e Solaris, però), se il bit setgid è impostato su una directory, tutti i nuovi file creati in quella directory avranno lo stesso proprietario del gruppo come directory stessa e non erediterà il gruppo principale (lutente che esegue) il processo di creazione.

Risposta

Penso che tu intenda il bit” SGID “di un file, che non è lo stesso del suo GID.

Qui” un file tipico sul mio computer (output di ls -l):

-rw-r----- 1 bristol users 16 2012-07-23 11:36 file.txt abbbcccddd <-- See explanation below. 

Se guardi i primi 10 simboli,

(a) -: Questo è solo un semplice vecchio file (al contrario a una directory, collegamento simbolico, pipe ecc …)

(b) rw-: Il proprietario può leggere e scrivere questo file, ma non eseguirlo. Il proprietario è “bristol” come puoi vedere più avanti nella riga.

(c) r–: I membri del gruppo a cui appartiene questo file (“utenti” nellesempio) diversi dal proprietario possono leggere, ma non scrivere o eseguire questo file.

(d) —: A nessun altro non può accedere a questo file (tranne root ovviamente).

Il campo GID è quello che ti dice a quale gruppo appartiene questo file, in questo caso “utenti”.

Il campo che probabilmente intendevi, in base alla tua descrizione, è il bit SGID, e qui “una spiegazione migliore di quella che potrei trovare:

http://www.codecoffee.com/tipsforlinux/articles/028.html

La versione breve è: se un file eseguibile ha il bit SGID impostato, allora chiunque non sia nel gruppo ma può eseguire questo file guadagna temporaneamente i diritti di questo gruppo mentre il programma è in esecuzione.

Ad esempio, se hai un gruppo “spool” che può leggere e scrivere file nella directory dello spooler di stampa, non farlo ” Non voglio che chiunque pasticci con questa directory ma vuoi che sia in grado di stampare file, puoi fare in modo che alcuni programmi di stampa o script abbiano un gruppo di “spool” e impostare il bit SGID e quando qualcuno avvia questo programma, il programma può ora scrivere nella directory dello spooler senza la persona in esecuzione ottiene pieno accesso.

Commenti

  • Bene, grazie per questo. Capisco la parte dei permessi, (la parte abbbcccddd), ma questo no 🙂
  • Ho appena visto che i miei permessi sulla cartella tmp sono drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Che cosa significa la abbbcccddt (lettera ‘ t ‘)? – Capisco che ” d = directory “, ” rwx = read, scrivi, esegui “; ma non ho mai visto il ‘ t ‘ alla fine prima. È unautorizzazione speciale per la cartella tmp?
  • La t piccola è ” eseguibile (x) e sticky bit impostato “. Vedi sopra per una spiegazione del motivo per cui questo è normale su / tmp.

Risposta

Il GID è, come hai trovato, il numero ID di un gruppo. È semplicemente un modo comodo per il sistema operativo di esprimere il gruppo (utente) associato a qualcosa (un processo, un file, ecc.); invece di un identificatore di stringa potenzialmente lungo, può essere espresso come un numero di dimensione fissa.

In un valore di autorizzazioni file di quattro cifre ottali (ad esempio, 0755), la terza cifra specifica i permessi del gruppo al file. Se ometti la prima cifra, è la seconda cifra che specifica i permessi del gruppo. Tieni presente che i file e le directory sono trattati allo stesso modo a questo proposito, ma che il significato esatto di ogni bit dei permessi è in qualche modo diverso -intuitivo nel caso delle directory.

I due concetti sono correlati, ma servono a scopi molto diversi.

Per quanto riguarda la tua domanda “è anche importante impostare quei permessi?”; sono sempre impostati su qualcosa , ma poiché nella maggior parte dei casi la cifra iniziale è 0 (“niente di speciale”), tende ad essere omessa per brevità. La necessità di specificare qualche altro valore dipende interamente da il modello di utilizzo del file o della directory in questione.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *