Wat betekent GID eigenlijk?

Ik heb het gegoogled en dit is wat linux.about.com zei:

Groepsidentificatienummer voor het proces. Geldige groepsnummers worden gegeven in /etc/group, en in het GID-veld van /etc/passwd -bestand. Wanneer een proces wordt gestart, wordt zijn GID ingesteld op de GID van zijn bovenliggende proces.

  • Maar wat betekent dat?

De machtigingen die ik heb voor mijn map staan momenteel op 0755

Ik begrijp dat als ik de UID voor de eigenaar instel, dit 4755

En als ik de GID van de groep instel, is dat 2755

Als Ik heb de Sticky Bit voor Anderen ingesteld, het wordt 1755

  • Is het zelfs belangrijk om die rechten in te stellen?

Answer

Elk proces in een UNIX-achtig systeem heeft, net als elk bestand, een eigenaar (de gebruiker, echt of een systeem “pseudo -user “, zoals daemon, bin, man, enz.) en een groep eigenaar. De groepseigenaar voor de bestanden van een gebruiker is doorgaans de primaire groep van die gebruiker, en op een vergelijkbare manier zijn alle processen die u start meestal eigendom van uw gebruikers-ID en uw primaire groeps-ID.

Soms Het is echter nodig om verhoogde rechten te hebben om bepaalde commandos uit te voeren, maar het is niet wenselijk om volledige beheerdersrechten te geven. Het passwd commando heeft bijvoorbeeld toegang nodig tot het schaduwwachtwoordbestand van het systeem, zodat het je wachtwoord kan updaten. Het is duidelijk dat je niet elke gebruiker root-privileges wilt geven, zodat ze hun wachtwoord kunnen resetten – dat zou ongetwijfeld tot chaos leiden! In plaats daarvan moet er een andere manier zijn om tijdelijk verhoogde rechten toe te kennen aan gebruikers om bepaalde taken uit te voeren. Dat is waar de SETUID- en SETGID-bits voor zijn. Het is een manier om de kernel te vertellen om de gebruikersrechten tijdelijk te verhogen, voor de duur van de uitvoering van het gemarkeerde commando. Een SETUID-binair bestand wordt uitgevoerd met de privileges van de eigenaar van het uitvoerbare bestand (meestal root), en een SETGID-binair bestand wordt uitgevoerd met de groepsprivileges van de groepseigenaar van het uitvoerbare bestand het dossier. In het geval van het passwd commando, dat behoort tot root en SETUID is, kunnen normale gebruikers direct de inhoud van het wachtwoord beïnvloeden bestand, op een gecontroleerde en voorspelbare manier, door uit te voeren met rootprivileges. Er zijn talloze andere SETUID -opdrachten op UNIX-achtige systemen (chsh, screen, ping, su, enz.), die allemaal verhoogde rechten vereisen om correct te werken. Er zijn ook een paar SETGID programmas, waarbij de kernel tijdelijk de GID van het proces verandert om toegang te krijgen tot logfiles, enz. sendmail is zon hulpprogramma.

Het sticky bit dient een iets ander doel. Het meest gebruikelijke gebruik is ervoor te zorgen dat alleen het gebruikersaccount dat een bestand heeft gemaakt, het kan verwijderen. Denk aan de /tmp directory. Het heeft zeer liberale machtigingen, waardoor iedereen daar bestanden kan maken. Dit is goed, en staat gebruikers “processen toe om tijdelijke bestanden te maken (screen, ssh, enz., Om statusinformatie in /tmp). Om de tijdelijke bestanden van een gebruiker te beschermen, heeft /tmp de sticky bit ingesteld, zodat alleen ik mijn bestanden kan verwijderen, en alleen jij kunt verwijder de jouwe. Natuurlijk kan root alles doen, maar we moeten hopen dat de sysadmin “niet gestoord is!

Voor normale bestanden (dat wil zeggen voor niet-uitvoerbare bestanden) heeft het weinig zin om de SETUID in te stellen / SETGID bits. SETGID op mappen op sommige systemen controleert de standaard groepseigenaar voor nieuwe bestanden die in die map zijn aangemaakt.

Reacties

  • Ah geweldig, bedankt daarvoor. Dus daarom is de Sticky Bit als een persoonlijke (gebruikers) toestemming? Dat antwoord was goed geformuleerd en begrijpelijk.
  • Bedankt! De sticky bit biedt een beetje bescherming voor bestanden in een directory met liberale machtigingen. Het ‘ is niet echt specifiek voor een bepaalde gebruiker, aangezien hetzelfde beschermingsniveau wordt geboden aan alle bestanden, ongeacht wie de eigenaar is. Het ‘ is een manier om iedereen toe te staan bestanden aan te maken, en om ervoor te zorgen dat alleen de eigenaar ze kan vernietigen.
  • +1, D_bye, zou je alsjeblieft een voorbeeld kunnen geven van een setgid bit set in directory.Bedankt
  • @Ankit Under Solaris (en vrijwel zeker anderen – ik gebruik echter alleen * BSD en Solaris), als het setgid-bit is ingesteld op een map, zullen alle nieuwe bestanden die onder die map worden gemaakt hetzelfde hebben groepseigenaar als de directory zelf, en zal de primaire groep van (de gebruiker die het aanmaakproces uitvoert) niet erven.

Answer

Ik denk dat je het” SGID “-bit van een bestand bedoelt, dat niet hetzelfde is als zijn GID.

Hier is een typisch bestand op mijn computer (uitvoer van ls -l):

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

Als je naar de eerste 10 symbolen kijkt,

(a) -: dit is gewoon een gewoon oud bestand (in tegenstelling tot naar een directory, symlink, pipe etc. …)

(b) rw-: De eigenaar kan dit bestand lezen en schrijven, maar niet uitvoeren. De eigenaar is “bristol” zoals je kunt zien later in de regel.

(c) r–: Leden van de groep waartoe dit bestand behoort (“gebruikers” in het voorbeeld) anders dan de eigenaar kunnen dit bestand lezen, maar niet schrijven of uitvoeren.

(d) —: A niemand anders heeft “helemaal geen toegang tot dit bestand (behalve de root natuurlijk).

Het GID-veld is het veld dat u vertelt tot welke groep dit bestand behoort – in dit geval” gebruikers “.

Het veld dat u waarschijnlijk bedoelde, gebaseerd op uw beschrijving, is het SGID-bit, en hier “een betere uitleg dan ik zou kunnen verzinnen:

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

De korte versie is: als een uitvoerbaar bestand de SGID-bit heeft ingesteld, dan is iedereen die niet in de groep zit kan dit bestand uitvoeren, verkrijgt tijdelijk de rechten van deze groep terwijl het programma wordt uitgevoerd.

Als u bijvoorbeeld een groep “spool” hebt die bestanden in de map print spooler kan lezen en schrijven, ” ik wil dat iedereen met deze map knoeit, maar je wilt wel dat ze bestanden kunnen afdrukken, je kunt een afdrukprogramma of script een groep “spool” laten maken en de SGID-bit instellen en wanneer iemand dit programma start, kan het programma nu schrijf naar de spoolermap zonder dat de persoon actief is het krijgt volledige toegang.

Reacties

  • Dat is goed, daarvoor bedankt. Ik begrijp het permissions-gedeelte (het abbbcccddd-gedeelte) – maar dat wil je wel 🙂
  • Ik heb zojuist gezien dat mijn permissies voor de map tmp drwxrwxrwt .... 2 sys .... sys .... 1024 Jul 24 15:17 tmp zijn. Wat betekent de abbbcccddt (letter ‘ t ‘)? – Ik begrijp dat ” d = directory “, ” rwx = read, schrijven, uitvoeren “; maar ik heb de ‘ t ‘ aan het einde nog nooit eerder gezien. Is dat speciale toestemming voor de map tmp?
  • Kleine t is ” uitvoerbaar (x) en sticky bit ingesteld “. Zie hierboven voor een uitleg waarom dit gebruikelijk is op / tmp.

Answer

De GID is, zoals je hebt het ID-nummer van een groep gevonden. Het is gewoon een handige manier voor het besturingssysteem om de (gebruikers) groep uit te drukken die aan iets is gekoppeld (een proces, een bestand, enz.); in plaats van een potentieel lange tekenreeksidentificatie, kan deze worden uitgedrukt als een getal met een vaste grootte.

In een bestandsmachtigingswaarde van vier octale cijfers (bijvoorbeeld 0755) specificeert het derde cijfer de machtigingen van de groep naar het bestand. Als u het eerste cijfer weglaat, is het het tweede cijfer dat de machtigingen van de groep aangeeft. Houd er rekening mee dat bestanden en mappen in dit opzicht hetzelfde worden behandeld, maar dat de exacte betekenis van elk machtigingsbit enigszins niet -intuïtief in het geval van mappen.

De twee concepten zijn gerelateerd, maar dienen zeer verschillende doeleinden.

Wat betreft uw vraag “is het zelfs belangrijk om die rechten in te stellen?”; ze zijn altijd ingesteld op iets , maar aangezien het begincijfer in de meeste gevallen 0 is (“niets bijzonders”), wordt het meestal weggelaten voor de beknoptheid. Of u een andere waarde moet specificeren, hangt volledig af van het gebruikspatroon voor het bestand of de directory in kwestie.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *