Linux

Linux-bestandsmachtigingen begrijpen

Linux-bestandsmachtigingen begrijpen

In Linux bepalen bestandspermissies, attributen en eigendom het toegangsniveau dat de systeemprocessen en gebruikers tot bestanden hebben. Dit zorgt ervoor dat alleen geautoriseerde gebruikers en processen toegang hebben tot specifieke bestanden en mappen.

Linux-bestandsmachtigingen #

Het basismodel voor Linux-machtigingen werkt door elk systeembestand aan een eigenaar en een groep te koppelen en toegangsrechten toe te wijzen aan drie verschillende klassen van gebruikers:

Bestandseigendom kan worden gewijzigd met behulp van de chown en chgrp commando's.

Er zijn drie typen bestandsmachtigingen van toepassing op elke gebruikersklasse:

Met dit concept kunt u bepalen welke gebruikers het bestand kunnen lezen, naar het bestand kunnen schrijven of het bestand kunnen uitvoeren.

Gebruik de om de bestandsrechten te bekijken ls opdracht:

ls -l bestandsnaam
-rw-r--r-- 12 linuxize-gebruikers 12.0K 28 apr 10:10 bestandsnaam |[-][-][-]- [------] [---] | | | | | | | | | | | | | +-----------> 7. Groep | | | | | +-------------------> 6. Eigenaar | | | | +--------------------------> 5. Alternatieve toegangsmethode | | | +----------------------------> 4. Anderen Machtigingen | | +-------------------------------> 3. Groepsmachtigingen | +----------------------------------> 2. Eigenaarsrechten +------------------------------------> 1. Bestandstype 

Het eerste teken geeft het bestandstype aan. Het kan een normaal bestand zijn (-), map (d), een symbolische link (ik), of andere speciale soorten bestanden. De volgende negen tekens vertegenwoordigen de bestandsrechten, drie drietallen van elk drie tekens three. Het eerste triplet toont de rechten van de eigenaar, het tweede groepspermissies en het laatste triplet toont de rechten van alle anderen.

In het bovenstaande voorbeeld (rw-r--r--) betekent dat de bestandseigenaar lees- en schrijfrechten heeft (rw-), hebben de groep en anderen alleen leesrechten (r--).

Bestandsrechten hebben een andere betekenis, afhankelijk van het bestandstype.

Elk van de drie machtigingsdrietallen kan worden opgebouwd uit de volgende tekens en hebben verschillende effecten, afhankelijk van of ze zijn ingesteld op een bestand of op een map:

Effect van machtigingen op bestanden

ToestemmingKarakterBetekenis op bestand
Lezen-Het bestand is niet leesbaar. U kunt de inhoud van het bestand niet bekijken.
rHet bestand is leesbaar.
Schrijven-Het bestand kan niet worden gewijzigd of aangepast.
met wieHet bestand kan worden gewijzigd of aangepast.
uitvoeren-Het bestand kan niet worden uitgevoerd.
XHet bestand kan worden uitgevoerd.
zoIndien gevonden in de gebruiker triplet, het stelt de setuid beetje. Indien gevonden in de groep triplet, het stelt de setgid beetje. Het betekent ook dat X vlag is gezet.
Wanneer de setuid of setgid vlaggen worden ingesteld op een uitvoerbaar bestand, het bestand wordt uitgevoerd met de eigenaar- en/of groepsrechten van het bestand.
SHetzelfde als zo, maar de X vlag is niet ingesteld. Deze vlag wordt zelden gebruikt op bestanden.
tIndien gevonden in de anderen triplet, het stelt de kleverig beetje.
Het betekent ook dat X vlag is gezet. Deze vlag is nutteloos voor bestanden.
THetzelfde als, t maar de X vlag is niet ingesteld. Deze vlag is nutteloos voor bestanden.

Effect van machtigingen op mappen (mappen)

Mappen zijn speciale soorten bestanden die andere bestanden en mappen kunnen bevatten.

ToestemmingKarakterBetekenis op Directory
Lezen-De inhoud van de map kan niet worden weergegeven.
rDe inhoud van de map kan worden weergegeven.
(e.g., U kunt bestanden in de map weergeven met ls.)
Schrijven-De inhoud van de map kan niet worden gewijzigd.
met wieDe inhoud van de map kan worden gewijzigd.
(e.g., U kunt nieuwe bestanden maken, bestanden verwijderen ... enz.)
uitvoeren-De map kan niet worden gewijzigd in.
XDe directory kan worden genavigeerd met CD.
zoIndien gevonden in de gebruiker triplet, het stelt de setuid beetje. Indien gevonden in de groep triplet het zet de setgid beetje. Het betekent ook dat X vlag is gezet. Wanneer de setgid vlag is ingesteld op een map, de nieuwe bestanden die erin zijn gemaakt, erven de mapgroep-ID (GID) in plaats van de primaire groeps-ID van de gebruiker die het bestand heeft gemaakt.
setuid heeft geen effect op mappen.
SHetzelfde als zo, maar de X vlag is niet ingesteld. Deze vlag is nutteloos in mappen.
tIndien gevonden in de anderen triplet, het stelt de kleverig beetje.
Het betekent ook dat X vlag is gezet. Wanneer de sticky bit op een map is ingesteld, kan alleen de eigenaar van het bestand, de eigenaar van de map of de gebruiker met beheerdersrechten de bestanden in de map verwijderen of hernoemen.
THetzelfde als t, maar de X vlag is niet ingesteld. Deze vlag is nutteloos in mappen.

Bestandsrechten wijzigen #

De bestandsrechten kunnen worden gewijzigd met de chmod opdracht. Alleen root, de bestandseigenaar of gebruiker met sudo-rechten kan de rechten van een bestand wijzigen. Wees extra voorzichtig bij het gebruik chmod, vooral bij het recursief wijzigen van de machtigingen. De opdracht kan een of meer bestanden en/of mappen, gescheiden door een spatie, als argumenten accepteren.

Machtigingen kunnen worden gespecificeerd met behulp van een symbolische modus, numerieke modus of een referentiebestand.

Symbolische (tekst) methode #

De syntaxis van de chmod commando bij gebruik van de symbolische modus heeft het volgende formaat:

chmod [OPTIES] [ugoa… ][-+=]perms… [,… ] BESTAND… 

De eerste set vlaggen ([oegoa... ]), gebruikersvlaggen, definieert de klassen van de gebruikers waarvoor de machtigingen voor het bestand zijn gewijzigd.

Wanneer de vlag van de gebruiker wordt weggelaten, wordt deze standaard ingesteld op: een.

De tweede set vlaggen ([-+=]), de bewerkingsvlaggen, definieert of de machtigingen moeten worden verwijderd, toegevoegd of ingesteld:

De machtigingen (permanenten… ) worden expliciet ingesteld met nul of een of meer van de volgende letters: r, met wie, X, X, zo, en t. Gebruik een enkele letter uit de set jij, g, en O bij het kopiëren van machtigingen van de ene naar de andere gebruikersklasse.

Bij het instellen van machtigingen voor meer dan één gebruikersklasse ([,… ]), gebruik komma's (zonder spaties) om de symbolische modi te scheiden.

Hier zijn enkele voorbeelden van het gebruik van de chmod commando in symbolische modus:

Numerieke methode #

De syntaxis van de chmod commando bij gebruik van de symbolische modus heeft het volgende formaat:

chmod [OPTIES] NUMMER BESTAND… 

Wanneer u de numerieke modus gebruikt, kunt u de machtigingen voor alle drie de gebruikersklassen (eigenaar, groep en alle andere) tegelijkertijd instellen.

Het toestemmingsnummer kan een nummer van 3 of 4 cijfers zijn. Wanneer een getal van 3 cijfers wordt gebruikt, vertegenwoordigt het eerste cijfer de machtigingen van de eigenaar van het bestand, het tweede de groep van het bestand en het laatste alle andere gebruikers.

Elke schrijf-, lees- en uitvoeringsmachtiging heeft de volgende getalwaarde:

Het machtigingsnummer van een specifieke gebruikersklasse wordt weergegeven door de som van de waarden van de machtigingen voor die groep.

Om de machtigingen van het bestand in numerieke modus te achterhalen, berekent u eenvoudig de totalen voor alle gebruikersklassen. Als u bijvoorbeeld lees-, schrijf- en uitvoermachtigingen wilt geven aan de eigenaar van het bestand, lees- en uitvoermachtigingen aan de groep van het bestand en alleen leesmachtigingen aan alle andere gebruikers, doet u het volgende:

Met behulp van de bovenstaande methode komen we tot het nummer 754, die de gewenste machtigingen vertegenwoordigt.

Om de in te stellen setuid, setgid, en plakkerig stukje vlaggen, gebruik een viercijferig nummer.

Wanneer het 4-cijferige nummer wordt gebruikt, heeft het eerste cijfer de volgende betekenis:

De volgende drie cijfers hebben dezelfde betekenis als bij het gebruik van een 3-cijferig nummer.

Als het eerste cijfer 0 is, kan het worden weggelaten, en de modus kan worden weergegeven met 3 cijfers. De numerieke modus 0755 is hetzelfde als 755.

Om de numerieke modus te berekenen, kunt u ook een andere methode gebruiken (binaire methode), maar deze is iets gecompliceerder. Weten hoe de numerieke modus te berekenen met 4, 2 en 1 is voor de meeste gebruikers voldoende.

U kunt de machtigingen van het bestand in de numerieke notatie controleren met behulp van de stat opdracht:

stat -c "%a" bestandsnaam 

Hier zijn enkele voorbeelden van het gebruik van de chmod commando in numerieke modus:

Conclusie #

In Linux is de toegang tot de bestanden beperkt met behulp van bestandspermissies, attributen en eigendom. Gebruik de om de machtigingen van het bestand te wijzigen chmod opdracht.

Als je vragen of feedback hebt, laat dan gerust een reactie achter.

Hoe u uw gamesessie op Linux kunt vastleggen en streamen
In het verleden werd het spelen van games alleen als een hobby beschouwd, maar met de tijd zag de game-industrie een enorme groei in termen van techno...
Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...