Vad betyder GID egentligen?

Jag har googlat det och det är vad linux.about.com sa:

Gruppidentifieringsnummer för processen. Giltiga gruppnummer ges i /etc/group och i GID-fältet i /etc/passwd -filen. När en process startas är dess GID inställt på GID för dess överordnade process.

  • Men vad betyder det?

Behörigheterna för min mapp är för närvarande 0755

Jag förstår att om jag ställer in UID för ägaren blir det 4755

Och om jag ställer in GID för gruppen blir det 2755

Om Jag ställer in Sticky Bit för andra det blir 1755

  • Är det till och med viktigt att ställa in dessa behörigheter?

Svar

Varje process i ett UNIX-liknande system, precis som alla filer, har en ägare (användaren, antingen riktig eller ett system ”pseudo -användare ”, såsom daemon, bin, man, etc) och en grupp ägare. Gruppägaren för en användares filer är vanligtvis den användarens primära grupp, och på liknande sätt ägs alla processer du startar vanligtvis av ditt användar-ID och av ditt primära grupp-ID.

Ibland Det är dock nödvändigt att ha förhöjda privilegier för att köra vissa kommandon, men det är inte önskvärt att ge fullständiga administrativa rättigheter. Till exempel behöver kommandot passwd åtkomst till systemets skugglösenordsfil så att det kan uppdatera ditt lösenord. Uppenbarligen vill du inte ge alla användare root-rättigheter, bara så att de kan återställa sitt lösenord – det skulle utan tvekan leda till kaos! Istället måste det finnas ett annat sätt att tillfälligt ge användare förhöjda behörigheter för att utföra vissa uppgifter. Det är vad SETUID- och SETGID-bitarna är avsedda för. Det är ett sätt att berätta för kärnan att tillfälligt höja användarens behörigheter under hela det markerade kommandot. En SETUID-binär kommer att köras med behörigheterna för ägaren av den körbara filen (vanligtvis root), och en SETGID-binär kommer att köras med gruppbehörigheterna för gruppägaren till den körbara fil. När det gäller kommandot passwd, som tillhör root och är SETUID, tillåter det vanliga användare att direkt påverka innehållet i lösenordet fil, på ett kontrollerat och förutsägbart sätt, genom att köra med rootprivilegier. Det finns många andra SETUID -kommandon på UNIX-liknande system (chsh, screen, ping, su, etc), som alla kräver förhöjda behörigheter för att fungera korrekt. Det finns också några SETGID -program där kärnan tillfälligt ändrar processens GID för att ge åtkomst till loggfiler etc. sendmail är ett sådant verktyg.

sticky bit tjänar ett något annat syfte. Den vanligaste användningen är att säkerställa att endast användarkontot som skapade en fil kan ta bort den. Tänk på katalogen /tmp. Det har mycket liberala behörigheter, som gör det möjligt för alla att skapa filer där. Detta är bra och tillåter användare ”processer att skapa tillfälliga filer (screen, ssh, etc., håll tillståndsinformation i /tmp). För att skydda en användares temporära filer har /tmp den klibbiga bituppsättningen, så att bara jag kan radera mina filer och bara du kan ta bort din. Naturligtvis kan root göra vad som helst, men vi måste hoppas att sysadmin inte är orolig!

För normala filer (det vill säga för icke-körbara filer), är det lite meningsfullt att ställa in SETUID / SETGID-bitar. SETGID i kataloger i vissa system styr gruppgruppens standardägare för nya filer som skapats i den katalogen.

Kommentarer

  • Ah fantastiskt, tack för det. Så därför är Sticky Bit som ett personligt (användar) tillstånd? Det svaret var väl formulerat och förståeligt.
  • Tack! Den klibbiga biten ger lite skydd för filer i en katalog med liberala behörigheter. Det ’ är inte riktigt specifikt för en given användare, eftersom samma skyddsnivå ges till alla filer, oavsett vem ägaren är. Det ’ ett sätt att låta vem som helst skapa filer och se till att bara ägaren kan förstöra dem.
  • +1, D_bye, kan du dela ett exempel för setgid bit set i katalogen.Tack
  • @Ankit Under Solaris (och nästan säkert andra – jag använder dock bara * BSD och Solaris), om setgid-biten är inställd på en katalog kommer alla nya filer som skapas under den katalogen att ha samma gruppägare som själva katalogen och kommer inte att ärva den primära gruppen (användaren som kör) skapandeprocessen.

Svar

Jag tror att du menar” SGID ”-biten i en fil, som inte är densamma som dess GID.

Här är en typisk fil på min dator (utdata från ls -l):

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

Om du tittar på de tio första symbolerna,

(a) -: Detta är bara en vanlig gammal fil (i motsats till till en katalog, symlink, rör etc. …)

(b) rw-: Ägaren kan läsa och skriva den här filen, men inte köra den. Ägaren är ”bristol” som du kan se senare i raden.

(c) r–: Medlemmar i gruppen som den här filen tillhör (”användare” i exemplet) andra än ägaren kan läsa, men inte skriva eller köra den här filen.

(d) —: A någon annan kan inte komma åt den här filen alls (förutom roten förstås).

Fältet GID är det som berättar vilken grupp den här filen tillhör – i detta fall ”användare”.

Fältet du förmodligen menade, baserat på din beskrivning, är SGID-biten, och här ”är en bättre förklaring än jag kunde komma med:

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

Den korta versionen är: om en körbar fil har SGID-bituppsättningen, är den som inte är i gruppen men kan köra den här filen tillfälligt får rättigheterna för denna grupp medan programmet körs.

Till exempel, om du har en grupp ”spool” som kan läsa och skriva filer i katalogen för utskriftsspooler, gör du inte ” t vill att vem som helst ska röra sig med den här katalogen men du vill att de ska kunna skriva ut filer, du kan göra något utskriftsprogram eller skript med grupp ”spool” och ställa in SGID-bit och när någon startar detta program kan programmet nu skriv till spooler-katalogen utan att personen kör det får full tillgång.

Kommentarer

  • Det är bra, tack för det. Jag förstår behörighetsdelen, (abbbcccddd-delen) – men thatnk dig 🙂
  • Jag har just sett mina behörigheter i tmp-mappen är drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp. Vad betyder abbbcccddt (bokstaven ’ t ’)? – Jag förstår att ” d = katalog ”, ” rwx = read, skriv, kör ”; men jag har aldrig sett ’ t ’ i slutet innan. Är det särskilt tillstånd för tmp-mappen?
  • Liten t är ” körbar (x) och klibbig bituppsättning ”. Se ovan för en förklaring till varför detta är vanligt på / tmp.

Svar

GID är, som du har hittat, ID-numret för en grupp. Det är helt enkelt ett bekvämt sätt för operativsystemet att uttrycka den (användar-) gruppen som är associerad med något (en process, en fil, etc.); i stället för en potentiellt lång strängidentifierare kan den uttryckas som ett fast storleknummer.

I ett filbehörighetsvärde på fyra oktala siffror (till exempel 0755) anger den tredje siffran gruppens behörigheter till filen. Om du utelämnar den första siffran är det den andra siffran som anger gruppens behörigheter. Observera att filer och kataloger behandlas samma i detta avseende, men att den exakta betydelsen för varje behörighetsbit är något icke -intuitivt när det gäller kataloger.

De två begreppen är relaterade men har mycket olika syften.

När det gäller din fråga ”är det till och med viktigt att ställa in dessa behörigheter?”; de är alltid inställda på något men eftersom i de flesta fall den ursprungliga siffran är 0 (”inget speciellt”) tenderar den att utelämnas för korthet. Huruvida du behöver ange något annat värde beror helt på användningsmönstret för den aktuella filen eller katalogen.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *