Ce înseamnă de fapt GID?

L-am cercetat pe Google și asta este linux.about.com a spus:

Numărul de identificare al grupului pentru proces. Numerele de grup valide sunt date în /etc/group și în câmpul GID al fișierului /etc/passwd. Când este început un proces, GID-ul său este setat la GID-ul procesului său părinte.

  • Dar ce înseamnă asta?

Permisiunile pe care le am pentru dosarul meu se află în prezent la 0755

Înțeleg dacă am setat UID-ul pentru proprietar va fi 4755

Și dacă setez GID-ul grupului va fi 2755

Dacă Am setat Bitul lipicios pentru alții va fi 1755

  • Este chiar important să setați aceste permisiuni?

Răspuns

Fiecare proces dintr-un sistem asemănător UNIX, la fel ca fiecare fișier, are un proprietar (utilizatorul, fie real, fie un sistem „pseudo -user „, cum ar fi daemon, bin, man etc.) și un grup proprietar. Proprietarul grupului pentru fișierele unui utilizator este de obicei grupul principal al acelui utilizator și, în mod similar, toate procesele pe care le începeți sunt de obicei deținute de ID-ul dvs. de utilizator și de ID-ul dvs. de grup principal.

Uneori Cu toate acestea, este necesar să aveți privilegii ridicate pentru a rula anumite comenzi, dar nu este de dorit să acordați drepturi administrative complete. De exemplu, comanda passwd are nevoie de acces la fișierul de parolă umbră al sistemului, astfel încât să vă poată actualiza parola. Evident, nu doriți să acordați fiecărui utilizator privilegii de root, doar pentru a-și putea reseta parola – asta ar duce fără îndoială la haos! În schimb, trebuie să existe o altă modalitate de a acorda temporar privilegii ridicate utilizatorilor pentru a îndeplini anumite sarcini. Pentru asta sunt folosiți biții SETUID și SETGID. Este o modalitate de a spune nucleului să ridice temporar privilegiile utilizatorului, pe durata executării comenzii marcate. Un binar SETUID va fi executat cu privilegiile proprietarului fișierului executabil (de obicei root), iar un binar SETGID va fi executat cu privilegiile de grup ale proprietarului grupului executabilului fişier. În cazul comenzii passwd, care aparține root și este SETUID, permite utilizatorilor normali să afecteze direct conținutul parolei fișier, într-un mod controlat și previzibil, prin executarea cu privilegii root. Există numeroase alte comenzi SETUID pe sisteme similare UNIX (chsh, screen, ping, su, etc), care necesită privilegii ridicate pentru a funcționa corect. Există, de asemenea, câteva programe SETGID, în care nucleul modifică temporar GID-ul procesului, pentru a permite accesul la fișierele jurnal etc. sendmail este o astfel de utilitate.

sticky bit are un scop ușor diferit. Cea mai obișnuită utilizare a acestuia este de a vă asigura că numai contul de utilizator care a creat un fișier îl poate șterge. Gândiți-vă la directorul /tmp. Are permisiuni foarte liberale, care permit oricui să creeze fișiere acolo. Acest lucru este bun și permite proceselor utilizatorilor să creeze fișiere temporare (screen, ssh etc., să păstreze informațiile de stare în /tmp). Pentru a proteja fișierele temporare ale unui utilizator, /tmp are setul de biți lipicios, astfel încât numai eu să îmi șterg fișierele și numai tu poți șterge-l pe al tău. Desigur, root poate face orice, dar trebuie să sperăm că administratorul de sistem nu este deranjat!

Pentru fișierele normale (adică pentru fișierele neexecutabile), nu are prea mult rost să setați SETUID / SETGID biți. SETGID în directoare de pe unele sisteme controlează proprietarul implicit al grupului pentru fișierele noi create în acel director.

Comentarii

  • Minunat, mulțumesc pentru asta. Prin urmare, Bitul Sticky este ca o permisiune personală (de utilizator)? Răspunsul a fost bine formulat și ușor de înțeles.
  • Mulțumesc! Bitul Sticky oferă puțină protecție pentru fișierele dintr-un director cu liberal permisiuni. ‘ nu este cu adevărat specific unui anumit utilizator, deoarece același nivel de protecție este acordat tuturor fișierelor, indiferent cine este proprietarul. Este ‘ este o modalitate de a permite oricui să creeze fișiere și de a vă asigura că numai proprietarul le poate distruge.
  • +1, D_bye, ați putea să partajați un exemplu pentru setgid bit setat în director.Vă mulțumim
  • @Ankit Sub Solaris (și aproape sigur alții – folosesc doar * BSD și Solaris, totuși), dacă bitul setgid este setat într-un director, orice fișiere noi create în acel director vor avea același lucru proprietarul grupului ca director în sine și nu va moșteni grupul principal al (utilizatorul care rulează) procesul de creare.

Răspuns

Cred că vrei să spui bitul” SGID „al unui fișier, care nu este același cu GID-ul său.

Aici” este un fișier tipic de pe computerul meu (ieșirea lui ls -l):

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

Dacă vă uitați la primele 10 simboluri,

(a) -: Acesta este doar un fișier vechi simplu (spre deosebire de la un director, link simbolic, pipe etc. …)

(b) rw-: Proprietarul poate citi și scrie acest fișier, dar nu îl poate executa. Proprietarul este „bristol”, după cum puteți vedea mai târziu în linie.

(c) r–: Membrii grupului căruia îi aparține acest fișier („utilizatori” în exemplu), alții decât proprietarul pot citi, dar nu pot scrie sau executa acest fișier.

(d) —: A oricine altcineva nu poate accesa acest fișier deloc (cu excepția rădăcinii, desigur).

Câmpul GID este cel care vă spune cărui grup îi aparține acest fișier – în acest caz „utilizatori”.

Câmpul la care v-ați referit probabil, pe baza descrierii dvs., este bitul SGID și aici „o explicație mai bună decât aș putea veni cu:

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

Versiunea scurtă este: dacă un fișier executabil are setat bitul SGID, atunci oricine care nu este în grup, dar poate executa acest fișier câștigă temporar drepturile acestui grup în timp ce programul se execută.

De exemplu, dacă aveți un grup „spool” care poate citi și scrie fișiere în directorul spoolerului de imprimare, nu faceți acest lucru ” nu doriți ca oricine să se încurce cu acest director, dar doriți ca ei să poată imprima fișiere, puteți face un program de tipărire sau un script să aibă grupul „spool” și să setați bitul SGID și când cineva lansează acest program, programul poate acum scrieți în directorul spooler fără ca persoana care rulează obține acces complet.

Comentarii

  • Este bine, vă mulțumesc pentru asta. Înțeleg partea de permisiuni, (partea abbbcccddd) – dar asta vă spune 🙂
  • Tocmai am văzut permisiunile mele în folderul tmp este drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Ce înseamnă abbbcccddt (litera ‘ t ‘)? – Înțeleg că ” d = director „, ” rwx = read, scrie, execută „; dar nu am mai văzut ‘ t ‘ la sfârșit. Este permisiunea specială pentru folderul tmp?
  • T mic este ” executabil (x) și set de biți lipicios „. Vedeți mai sus pentru o explicație de ce acest lucru este obișnuit pe / tmp.

Răspuns

GID este, ca ați găsit numărul de identificare al unui grup. Este pur și simplu o modalitate convenabilă pentru OS de a exprima grupul (utilizator) asociat cu ceva (un proces, un fișier etc.); în loc de un identificator de șir potențial lung, acesta poate fi exprimat ca un număr de dimensiune fixă.

Într-o valoare a permisiunilor de fișier de patru cifre octale (de exemplu, 0755), a treia cifră specifică permisiunile grupului Dacă omiteți prima cifră, aceasta este a doua cifră care specifică permisiunile grupului. Rețineți că fișierele și directoarele sunt tratate la fel în acest sens, dar că sensul exact al fiecărui bit de permisiuni este oarecum non -intuitiv în cazul directoarelor.

Cele două concepte sunt legate, dar au scopuri foarte diferite.

În ceea ce privește întrebarea dvs. „este chiar important să setați aceste permisiuni?”; acestea sunt întotdeauna setate la ceva , dar, deoarece în majoritatea cazurilor cifra inițială este 0 („nimic special”), aceasta tinde să fie omisă pentru concizie. Dacă trebuie să specificați o altă valoare depinde în întregime de modelul de utilizare pentru fișierul sau directorul în cauză.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *