Linux-machtigingen en chmod-gebruik begrijpen

Ik heb de afgelopen maanden een cursus over Linux gevolgd en een aspect van (Linux)Linux dat me altijd in de war bracht, was hoe permissies werkten. Toen ik bijvoorbeeld een keer een bestand naar mijn webserver uploadde en een foutmelding kreeg, kreeg ik van mijn webhost te horen dat ik de bestandsrechten moest wijzigen in 755.

Ik had geen idee wat dat betekende, hoewel het probleem was opgelost door de machtigingen te wijzigen. Ik heb me nu gerealiseerd dat Linux -machtigingen niet zo ingewikkeld zijn, je moet alleen het systeem begrijpen. In dit artikel zal ik het hebben over Linux -machtigingen op een hoog niveau en je laten zien hoe je het chmod-commando gebruikt om machtigingen voor bestanden en mappen te wijzigen.

Linux-machtigingen en -niveaus

In Linux zijn er in principe drie machtigingen waar u zich normaal gesproken zorgen over moet maken: lezen, schrijven en uitvoeren. Deze zijn alle drie vrij vanzelfsprekend. Wanneer deze machtigingen nu op een bestand worden toegepast, worden ze in niveaus toegepast.

Er zijn drie machtigingsniveaus in Linux : eigenaar, groep en andere. De eigenaar is de gebruiker die eigenaar is van het bestand/de map, de groep omvat andere gebruikers in de groep van het bestand en overige vertegenwoordigt alleen alle andere gebruikers die niet de eigenaar of in de groep zijn.

Lezen(Read) , schrijven en uitvoeren worden weergegeven als symbolische tekens of als octale getallen. Als u bijvoorbeeld een ls -l doet in een map met enkele bestanden, ziet u de symbolische tekenrepresentatie van de machtigingen.

De machtigingen zijn als volgt geschreven: het eerste bit is een streepje of de letter d. Dash betekent dat het een bestand is en d staat voor directory. Merk op dat het eerste bit ook een l kan zijn als de bestandsnaam een ​​link is. Vervolgens zijn er drie groepen van drie bits. Het eerste bit in elke groep is voor lezen, het tweede bit is voor schrijven en het derde bit is voor uitvoeren. De eerste drie bits zijn voor de eigenaar, de tweede drie bits zijn voor de groep en de derde drie bits zijn voor anderen. Hier is een meer visuele uitleg.

Als u een streepje ziet in plaats van een letter, betekent dit dat de eigenaar, groep of alle andere gebruikers die toestemming niet hebben. In het bovenstaande voorbeeld hebben de eigenaar, de groep en alle anderen lees-schrijf- en uitvoerrechten.

Als je naar de uitvoer van de opdracht ls -l kijkt, zul je merken dat mijn oefentekstbestand de volgende rechten heeft:

-rw-rw-rw-

Dit betekent dat iedereen alleen lees-/schrijfrechten heeft voor het bestand. Hier is nog een voorbeeld:

drwxr--r--

Als we naar het eerste bit kijken, kunnen we zien dat de machtigingen voor een map zijn. De eigenaar heeft lees-/schrijf-/uitvoerrechten, maar de groep en andere gebruikers hebben alleen leesrechten.

Octale nummerweergave

Dus dat is hoe machtigingen worden weergegeven in Linux met behulp van symbolen. De tweede manier om dezelfde machtigingen weer te geven, is door octale getallen te gebruiken. Als we later het chmod-commando gebruiken, zul je zien dat je de rechten kunt wijzigen met symbolen of octale getallen.

Dus hoe vertegenwoordigt Linux lezen, schrijven en uitvoeren met behulp van octale getallen? Kortom, het wijst gewoon een nummer toe aan elke machtiging, zoals hieronder wordt weergegeven.

De leesrechten worden weergegeven door 4, schrijven door 2 en uitvoeren door 1. Het enige wat u hoeft te doen is ze optellen om de octale toestemming te krijgen. Laten we bijvoorbeeld het bovenstaande voorbeeld nemen waar iedereen alle rechten heeft:

-rwxrwxrwx

De eigenaar heeft rwx, dus we zullen 4 + 2 + 1 optellen om een ​​waarde van 7 te krijgen. We doen hetzelfde voor de groep en hetzelfde voor de andere. De uiteindelijke octale waarde is 777. Laten we eens kijken naar het voorbeeld waarin we alleen lees-/schrijfrechten hebben gegeven:

-rw-rw-rw-

Het eerste octale getal is 4 + 2 omdat we lezen en schrijven toevoegen. De tweede zal hetzelfde zijn als het derde octale getal. Hier hebben we een uiteindelijke octale waarde van 666.

Dus laten we het nu op de andere manier proberen. Stel dat we willen weten welke machtigingen 755 vertegenwoordigt? Nou, het is vrij eenvoudig om erachter te komen als je het opsplitst in individuele getallen. Het eerste getal is 7, wat we alleen kunnen krijgen door 4 + 2 + 1 toe te voegen, wat betekent dat de eigenaar lees-/schrijf-/uitvoerrechten heeft. Vijf kunnen alleen worden verkregen door 4 + 1 toe te voegen, wat betekent dat de groep en andere gebruikers lees- en uitvoerrechten hebben.

Hopelijk(Hopefully) is dat een goede uitleg voor het weergeven van machtigingen in Linux met behulp van octale getallen. Het is over het algemeen vrij rechttoe rechtaan.

chmod gebruiken om machtigingen te wijzigen

Nu we begrijpen hoe we machtigingen moeten lezen, gaan we het hebben over hoe we ze kunnen wijzigen. Het eenvoudigste hulpprogramma dat voor dit doel kan worden gebruikt, is het commando chmod. Dit is hoe het werkt. De beste manier om de opdracht uit te leggen, is door een voorbeeld door te nemen.

Laten we beginnen met de machtigingen waar we het hierboven over hadden, namelijk:

-rw-rw-rw-

Als we de uitvoermachtiging voor eigenaar, groep en andere wilden toevoegen, konden we dit op twee manieren doen. We kunnen de symboolmethode of de octale methode gebruiken. Voor de symboolmethode zouden we het volgende doen, zoals hieronder weergegeven:

Het exacte commando is:

chmod a+x filename

De syntaxis is als volgt: de letter of letters die de eigenaar ( u ), groep ( g ), overige ( o ) of alle ( a ) vertegenwoordigen gevolgd door een + voor het toevoegen van machtigingen of een voor het wegnemen van machtigingen en dan de letter voor de toestemming ( r voor lezen, w voor schrijven en x voor uitvoeren).

In het bovenstaande voorbeeld heb ik de uitvoermachtiging voor alle gebruikers toegevoegd. Het resultaat zoals je kunt zien in de bovenstaande schermafbeelding is een x voor eigenaar, groep en andere. Laten we nu zeggen dat ik de schrijf- en uitvoerrechten voor alleen de groep en andere gebruikers wilde verwijderen.

Zoals je hier kunt zien, gebruikte ik de volgende opdracht om dit te bereiken:

chmod go-wx filename

Omdat ik de machtigingen voor groepen en andere wil wijzigen, gebruik ik de letter g en de letter o . Ik wil permissies verwijderen, dus gebruik ik het teken. Ten slotte wil ik de schrijf- en uitvoeringsrechten verwijderen, dus ik gebruik w en x . Hier is een handige kleine tabel voor het gebruik van symbolen:

Dus dat is alles wat er is om de symboolmethode te gebruiken. Laten we het nu hebben over de octale methode, die ik een beetje makkelijker vind. Octal is fijn omdat je in één keer permissies kunt toevoegen of verwijderen.

Als we beginnen met de volgende machtigingen voor een bestand, laten we eens kijken hoe we deze kunnen wijzigen met behulp van de octale methode:

-rw-rw-rw-

Hierboven(Above) kun je zien dat ik de volgende opdracht heb gebruikt:

chmod 744 filename

Dit houdt in feite in dat de eigenaar lees-/schrijf-/uitvoerrechten krijgt en dat de groep en anderen alleen leesrechten krijgen. Zoals u kunt zien, is het gemakkelijk om machtigingen toe te voegen of te verwijderen met één simpele opdracht. Laten we doorgaan en zeggen dat ik de rechten opnieuw wil wijzigen.

Nu heb ik het volgende commando gebruikt, weer een heel eenvoudig commando:

chmod 640 filename

Hier hebben we de eigenaar lees-/schrijfrechten gegeven, de groep alleen leesrechten en de andere groep geen rechten. U gebruikt een nul om geen machtigingen aan te duiden. Vrij simpel, hè?

Samenvattend, dit is een heel eenvoudig overzicht van Linux -machtigingen en het kan veel ingewikkelder worden dan dit, maar voor beginners is het een goede plek om te beginnen. Ik zal in de toekomst meer artikelen plaatsen over geavanceerdere machtigingen. Als je vragen hebt, voel je vrij om commentaar te geven. Genieten van!



About the author

Ik ben een computerprofessional met meer dan 10 jaar ervaring. In mijn vrije tijd help ik graag aan een bureau en leer ik kinderen internetten. Mijn vaardigheden omvatten veel dingen, maar het belangrijkste is dat ik weet hoe ik mensen kan helpen bij het oplossen van problemen. Als je iemand nodig hebt die je kan helpen met iets dringends of gewoon wat basistips wilt, neem dan contact met me op!



Related posts