De Chmod-commando- en Linux-bestandsrechten verklaard

Als u de bestandsrechten op een Linux-besturingssysteem goed wilt beheren, moet u de opdracht chmod weten.

Als u de bestandsrechten op een Linux-besturingssysteem goed wilt beheren, moet u de opdracht chmod weten.
Advertentie

Dus je hebt een smaak van Linux gevonden die je leuk vindt, maar nu ben je in de war omdat je geen flauw idee hebt van terminalopdrachten en Linux-bestandsrechten?

Of misschien heb je een website die op een Linux-server wordt gehost en je hebt een aantal problemen met bestandsrechten tegengekomen die alleen kunnen worden opgelost met een beetje magic op de opdrachtregel.

Ongeacht, een van de meest essentiële Linux-opdrachten om te leren Een AZ van Linux - 40 Essentiële opdrachten die je moet kennen Een AZ van Linux - 40 Essentiële opdrachten die je moet kennen Linux is het vaak genegeerde derde wiel naar Windows en Mac. Ja, in de afgelopen tien jaar heeft het open-source besturingssysteem veel grip gekregen, maar het is nog steeds ver verwijderd van het feit dat ... Lees meer is een klein maar krachtig commando dat chmod heet. Maar voordat we uitleggen wat het commando doet, moeten we eerst een beetje begrijpen hoe Linux omgaat met bestandsbeveiliging.

De grondbeginselen van Linux-bestandsmachtigingen

Linux-besturingssystemen zijn eigenlijk Unix-achtige systemen (Linux versus Unix), en Unix-achtige systemen benaderen bestandsrechten zoals:

Elk bestand heeft een eigenaar, die de "gebruikersklasse" van het bestand bepaalt. Elk bestand heeft ook een groep, die de "groepsklasse" van het bestand bepaalt. Elke systeemgebruiker die niet de eigenaar is en niet in dezelfde groep hoort, is vastbesloten anderen te zijn .

Alle bestanden op Unix-achtige systemen hebben permissies toegewezen aan alle drie klassen, en deze bepalen welke acties kunnen worden ondernomen door genoemde klassen voor het gegeven bestand.

De drie acties die beschikbaar zijn op een Unix-achtig systeem zijn: lezen (de mogelijkheid om de inhoud van het bestand te openen en te bekijken), schrijven (de mogelijkheid om de inhoud van een bestand te openen en aan te passen), en uitvoeren (de mogelijkheid om de bestand als een uitvoerbaar programma).

Met andere woorden, de machtigingen van een bestand bepalen of al dan niet:

  • De eigenaar kan het bestand lezen, schrijven en uitvoeren.
  • De groep kan het bestand lezen, schrijven en uitvoeren.
  • Iedereen anders kan het bestand lezen, schrijven en uitvoeren.

Linux-bestandsmachtigingen kunnen in twee indelingen worden weergegeven.

Het eerste formaat wordt symbolische notatie genoemd, wat een reeks van 10 tekens is: één teken dat het bestandstype vertegenwoordigt, vervolgens negen tekens die de lees- (r), schrijf (w) en uitvoer (x) -machtigingen van het bestand vertegenwoordigen in de volgorde van eigenaar, groep en anderen. Als dit niet is toegestaan, wordt het streepjesymbool (-) gebruikt.

Bijvoorbeeld:

-rwxr-xr-- 

Dit betekent dat het een gewoon bestand is met lees-, schrijf- en uitvoerrechten voor de eigenaar; lees en voer de rechten voor de groep uit; en lees alleen toestemmingen voor iedereen.

Het tweede formaat wordt numerieke notatie genoemd . Dit is een reeks van drie cijfers die elk respectievelijk gebruikers-, groeps- en andere machtigingen vertegenwoordigen. Elk cijfer kan variëren van 0 tot 7, en de waarde van elk cijfer wordt verkregen door de machtigingen van de klas te sommeren:

  • 0 betekent geen toegestane machtigingen.
  • +1 als de klasse het bestand kan uitvoeren.
  • +2 als de klas naar het bestand kan schrijven.
  • +4 als de klas het bestand kan lezen.

Met andere woorden, de betekenis van elke cijferwaarde wordt uiteindelijk:

  • 0: geen toestemming
  • 1: uitvoeren
  • 2: schrijven
  • 3: schrijf en voer uit
  • 4: lezen
  • 5: Lezen en uitvoeren
  • 6: Lezen en schrijven
  • 7: lezen, schrijven en uitvoeren

Dus het bovenstaande voorbeeld ( -rwxr-xr-- ) zou 754 zijn in numerieke notatie.

Dat zijn Linux bestandsrechten in een notendop.

Wat is Chmod?

Op Unix-achtige systemen is chmod een opdracht op systeemniveau die staat voor "wijzigingsmodus" en waarmee u de machtigingsinstellingen van een bestand handmatig kunt wijzigen.

Niet te verwarren met chown, wat een ander commando op systeemniveau is op Unix-achtige systemen dat staat voor "change owner" en waarmee je het eigendom van een bestand aan een andere gebruiker kunt toewijzen, of chgrp, wat staat voor "change group" en assigns een bestand naar een andere groep. Deze zijn belangrijk om te weten, maar niet zo vaak gebruikt als chmod.

Wat betekent Chmod 644?

Het instellen van de rechten van een bestand op 644 maakt het zo dat alleen de eigenaar het bestand kan openen en aanpassen zoals ze willen, terwijl iedereen alleen toegang kan krijgen zonder het te wijzigen en niemand het bestand kan uitvoeren, zelfs niet de eigenaar. Dit is de ideale instelling voor bestanden die openbaar toegankelijk zijn omdat het flexibiliteit in evenwicht brengt met beveiliging.

Wat betekent Chmod 755?

Het instellen van de rechten van een bestand op 755 is in principe hetzelfde als 644, behalve dat iedereen ook uitvoeringsrechten heeft. Dit wordt voornamelijk gebruikt voor openbaar toegankelijke directory's omdat de execute-machtiging nodig is om in een directory te veranderen.

Wat betekent Chmod 555?

Het instellen van de rechten van een bestand op 555 maakt het zo dat het bestand door niemand anders dan de superuser van het systeem kan worden gewijzigd (kom meer te weten over de Linux superuser Wat is SU en waarom is het belangrijk om Linux effectief te gebruiken? Wat is SU & waarom is het Belangrijk om Linux efficiënt te gebruiken? De Linux SU of root-gebruikersaccount is een krachtige tool die nuttig kan zijn bij correct gebruik of verwoestend bij roekeloos gebruik Laten we eens kijken waarom u verantwoordelijk zou moeten zijn bij het gebruik van SU. Dit wordt niet zo vaak gebruikt als 644, maar het is nog steeds belangrijk om te weten, omdat de alleen-lezen-instelling onbedoelde wijzigingen en / of knoeien voorkomt.

Wat betekent Chmod 777?

Het instellen van de rechten van een bestand op 777 maakt het zo dat iedereen alles kan doen wat ze willen met het bestand. Dit is een enorm veiligheidsrisico, vooral op webservers! Letterlijk iedereen heeft toegang tot het bestand, kan het desgewenst aanpassen en het op het systeem uitvoeren. Je kunt je de potentiële schade voorstellen als een malafide gebruiker de hand heeft weten te leggen.

Hoe Chmod te gebruiken op Linux

De opdracht chmod heeft een eenvoudig formaat:

 chmod [permissions] [file] 

Machtigingen kunnen worden gegeven in numerieke notatie, wat de beste indeling is om te gebruiken wanneer u specifieke rechten wilt toewijzen voor alle klassen:

 chmod 644 example.txt 

Toestemmingen kunnen ook in symbolische notatie worden gegeven, wat handig is als u alleen de rechten van een bepaalde klasse wilt wijzigen. Bijvoorbeeld:

 chmod u=rwx example.txt chmod g=rw example.txt chmod o=rw example.txt 

U kunt rechten voor meerdere klassen wijzigen, zoals dit voorbeeld waarmee de eigenaar leest / schrijft / uitvoert maar de groep en anderen moet lezen / uitvoeren / uitvoeren:

 chmod u=rwx, g=rw, o=rw example.txt 

Bij het toewijzen van dezelfde rechten aan meerdere klassen, kunt u ze combineren:

 chmod u=rwx, go=rw example.txt 

Maar de schoonheid van het gebruik van symbolische notaties schijnt wanneer u alleen de toestemming voor een bepaalde actie voor een bepaalde klasse wilt toevoegen of verwijderen.

Dit voegt bijvoorbeeld de execute-machtiging toe aan de eigenaar van het bestand:

 chmod u+x example.txt 

En dit verwijdert de schrijf- en uitvoerrechten voor andere gebruikers:

 chmod o-wx example.txt 

Als u ten slotte een bepaalde reeks machtigingen wilt toepassen op alle bestanden en mappen binnen een bepaalde map (dwz een recursieve chmod), gebruikt u de optie -R en target u een directory:

 chmod -R 755 example_directory 

Hoewel het commando chmod op het eerste gezicht een beetje gek lijkt, is het eigenlijk vrij eenvoudig en volledig logisch. Als je het bovenstaande begrijpt, heb je chmod in essentie onder de knie!

Meer informatie over het beheersen van Linux

Commando's zoals chmod, chown en chgrp vormen slechts het topje van de Linux-ijsberg. Als je het besturingssysteem helemaal niet kent, raden we je aan deze handige trucs voor Linux-nieuwelingen te bekijken, evenals deze Linux-opdrachten die je nooit zou moeten uitvoeren.

Maar het belangrijkste is dat je het beste kunt doen door onze uitgebreide beginnershandleiding voor Ubuntu en Linux te bekijken. Ubuntu: Een beginnersgids Ubuntu: een beginnersgids Benieuwd naar Ubuntu, maar weet je niet zeker waar je moet beginnen? Alles wat u nodig heeft om aan de slag te gaan met de nieuwste versie van Ubuntu, is hier geschreven in eenvoudig te begrijpen, eenvoudig Engels. Lees meer, waarmee u alles leert wat u moet weten om aan de slag te gaan en voldoende vertrouwd te maken om u op uw gemak te voelen.

In this article