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!
Related posts
Linux-bestandsmachtigingen - Wat is Chmod 777 en hoe het te gebruiken?
Linux FIND-opdracht met voorbeelden
5 goede redenen om Windows voor Linux te dumpen
HDG legt uit: wat is UNIX?
9 beste Linux-distributies voor hacken
7 manieren om bestanden in Linux te zippen en uit te pakken
Een Linux-schijfpartitie maken
Fedora versus Ubuntu: welke Linux-distributie is beter?
10 beste schermrecorders voor Linux
BSD versus Linux: de basisverschillen
Een Ubuntu Linux-gids voor beginners
Maak je eigen live videostreamingserver met Linux
Converteer afbeeldingen tussen formaten via de opdrachtregel in Ubuntu
6 eenvoudige manieren om uw Ubuntu-installatie te versnellen
Ubuntu configureren om een inactief beeldscherm niet te dimmen of uit te schakelen
Snelkoppelingen toevoegen aan het contextmenu met de rechtermuisknop in Ubuntu
Waarom het commando "minder" beter is dan "meer" in UNIX en Linux
De 5 beste Linux-spellen
5 manieren om een bestandsback-up in Linux te automatiseren
Hoe een bestand of map in Linux te verwijderen