chmod Commando in Linux met voorbeelden

Bij het werken met bestanden en mappen in Linux is de chmod-opdracht een onmisbaar hulpmiddel in uw arsenaal. Als acroniem voor 'Change Mode' is de chmod-opdracht ontworpen om Linux-gebruikers te helpen bestands- of mapmachtigingen aan te passen. Deze opdracht is boordevol veelzijdigheid en cruciaal voor veilig en efficiënt bestandsbeheer. Laten we dieper ingaan op de complexiteit van de chmod-opdracht en ontdekken hoe deze in de praktijk kan worden gebruikt.

Het chmod-commando in Linux begrijpen

Wat is het chmod-commando?

De opdracht chmod is een Linux-opdrachtregelhulpprogramma waarmee u de bestandssysteemmodus kunt wijzigen. Deze modus bepaalt de soorten machtigingen die gebruikers en groepen hebben voor bestanden en mappen. Deze machtigingen regelen wie de opgegeven bestanden kan lezen, schrijven en uitvoeren.

Waarom het chmod-commando gebruiken?

In Linux zijn bestanden en mappen gedeelde bronnen. Om deze bronnen te beschermen, moeten toegangsrechten worden beheerd. Met de opdracht chmod kunt u deze rechten beheren en de beveiliging van het systeem garanderen. Of u nu een systeembeheerder bent die gevoelige gegevens beschermt of een ontwikkelaar die een project opzet, het is noodzakelijk om chmod te begrijpen.

De syntaxis van chmod-opdrachten begrijpen

De opdracht chmod volgt de onderstaande syntaxis:

chmod [OPTIONS] MODE[,MODE]... FILE...

OPTIONS kunnen optionele parameters zijn die extra functionaliteit bieden, MODE specificeert de machtigingen die moeten worden ingesteld en FILE is het bestand of de map waarvan de machtigingen worden gewijzigd. chmod heeft twee primaire methoden voor het definiëren van machtigingen: numerieke modus en symbolische modus.

Verschillende opties van het chmod-commando

chmod-opdracht zonder enige opties

Standaard verandert chmod, zonder enige opties, de rechten van het bestand naar de modus die door de gebruiker is opgegeven.

chmod 755 filename

Het bovenstaande commando wijzigt de rechten van 'bestandsnaam' zodat de eigenaar lees-, schrijf- en uitvoerrechten heeft (7), en de groep en anderen lees- en uitvoerrechten hebben (5).

chmod-opdracht met opties

Er kunnen verschillende opties worden gebruikt met chmod om de functionaliteit ervan uit te breiden:

  • -R of –recursief: Wijzigt bestanden en mappen recursief.
  • -f of –stil of –stil: onderdrukt de meeste foutmeldingen.
  • -v of –verbose: Voert een diagnose uit voor elk verwerkt bestand.
  • –reference=RFILE: Stelt de machtigingen in zodat deze overeenkomen met die van RFILE.

Bestandsrechten begrijpen met chmod

Drie tekens geven de rechten in Linux aan:

  • r (lezen): De toestemming om de inhoud van het bestand te lezen.
  • w (schrijven): De toestemming om het bestand te wijzigen of te verwijderen.
  • x (uitvoeren): De toestemming om het bestand uit te voeren.

Een bestand met rwx-machtigingen voor de gebruiker betekent bijvoorbeeld dat de gebruiker het bestand kan lezen, schrijven en uitvoeren.

Numerieke en symbolische modi in chmod

Er zijn twee manieren om rechten te wijzigen met chmod:

  • Numerieke modus: Deze modus gebruikt getallen om machtigingen weer te geven. Lezen is 4, schrijven is 2 en uitvoeren is 1. Deze getallen worden bij elkaar opgeteld om machtigingen in te stellen. Om de gebruiker bijvoorbeeld lees-, schrijf- en uitvoeringsmachtigingen (7) te geven, zou u de opdracht gebruiken:
chmod 700 filename
  • Numerieke modus: Deze modus gebruikt getallen om machtigingen weer te geven. Lezen is 4, schrijven is 2 en uitvoeren is 1. Deze getallen worden bij elkaar opgeteld om machtigingen in te stellen. Om de gebruiker bijvoorbeeld lees-, schrijf- en uitvoeringsmachtigingen (7) te geven, zou u de opdracht gebruiken:
chmod u+x filename

Algemene voorbeelden van chmod-opdrachten

Laten we, nu we begrijpen hoe machtigingen en de opdracht chmod werken, enkele praktische voorbeelden bekijken.

Voorbeeld 1: Machtigingen wijzigen met behulp van de numerieke modus

chmod 755 filename

Met deze opdracht worden de machtigingen van 'bestandsnaam' gewijzigd, zodat:

  • De gebruiker (eigenaar) heeft machtigingen voor lezen (4), schrijven (2) en uitvoeren (1), samengevat tot 7.
  • De groep en anderen hebben machtigingen voor lezen (4) en uitvoeren (1), in totaal 5.

Met andere woorden: de eigenaar heeft volledige toegang, terwijl de groepsleden en anderen het bestand kunnen lezen en uitvoeren, maar niet kunnen wijzigen.

Voorbeeld 2: Machtigingen wijzigen met behulp van de symbolische modus

chmod u+x filename

Deze opdracht voegt uitvoerrechten voor de gebruiker toe aan 'bestandsnaam'. Hier is de uitsplitsing:

  • u: vertegenwoordigt de gebruiker.
  • +: Geeft aan dat er een machtiging wordt toegevoegd.
  • x: Staat voor uitvoeringstoestemming.

Samenvattend vertelt dit commando het systeem: “Voeg (+) uitvoer (x) toestemming toe voor de gebruiker (u) voor dit bestand ('bestandsnaam')”.

Voorbeeld 3: Machtigingen verwijderen

chmod go-w filename

Met deze opdracht worden de schrijfrechten voor de groep en anderen verwijderd van 'bestandsnaam'. In detail:

  • go: staat voor groep en anderen.
  • -: Geeft aan dat een machtiging wordt verwijderd.
  • w: Geeft schrijfrechten weer.

Daarom verwijdert deze opdracht de schrijfrechten van de groep en andere gebruikers, waardoor de beveiliging van het bestand wordt verbeterd.

Voorbeeld 4: Alle machtigingen instellen

chmod ugo+rwx filename

Dit commando geeft alle rechten aan alle gebruikers voor 'bestandsnaam'. De verdeling is als volgt:

  • ugo: vertegenwoordigt gebruiker, groep en anderen.
  • +: Geeft aan dat machtigingen worden toegevoegd.
  • rwx: Staat voor lees-, schrijf- en uitvoerrechten.

Met deze opdracht wordt 'bestandsnaam' voor iedereen toegankelijk. U dient er echter voorzichtig mee te zijn vanwege de beveiligingsrisico's.

Voorbeeld 5: chmod gebruiken met optie -R

chmod -R 755 directoryname

Met deze opdracht worden de rechten van alle bestanden en mappen in 'mapnaam' recursief gewijzigd.

  • -R: Staat voor 'recursief' en wordt gebruikt wanneer we de machtigingen voor alle bestanden en mappen in een map willen wijzigen.

Hier verleent deze opdracht volledige machtigingen aan de eigenaar en lees- en uitvoerrechten voor groep en anderen voor 'mapnaam' en alle geneste bestanden en mappen ervan.

Voorbeeld 6: Groepsrechten wijzigen

chmod g-wx filename

Met deze opdracht worden de schrijf- en uitvoerrechten van de groep voor 'bestandsnaam' verwijderd. Hier is de uitleg:

  • g: Staat voor de groep.
  • -: Geeft aan dat machtigingen worden verwijderd.
  • wx: vertegenwoordigt schrijf- en uitvoeringsrechten.

Hierdoor kunnen groepsleden die aan 'bestandsnaam' zijn gekoppeld, deze niet meer wijzigen of uitvoeren.

Voorbeeld 7: Meerdere machtigingen wijzigen

chmod u=rwx,g=rx,o=r filename

Met deze opdracht stelt u verschillende machtigingen in voor verschillende typen gebruikers. Dit is wat het doet:

  • u=rwx: Stelt de machtigingen van de gebruiker in om te lezen, schrijven en uitvoeren.
  • g=rx: Stelt de rechten van de groep in om te lezen en uit te voeren.
  • o=r: Stelt de machtigingen van de ander in op alleen-lezen.

Hiermee kunt u de toegangsniveaus voor verschillende typen gebruikers gedetailleerd beheren.

Voorbeeld 8: Machtigingen kopiëren

chmod --reference=filename1 filename2

Met deze opdracht worden de machtigingen gekopieerd van 'bestandsnaam1' naar 'bestandsnaam2'.

  • –referentie=bestandsnaam1: geeft aan dat 'bestandsnaam1' het referentiebestand is waaruit machtigingen worden gekopieerd.

Deze opdracht is handig als u snel dezelfde machtigingen op meerdere bestanden wilt toepassen.

Voorbeeld 9: Machtigingen wijzigen met Sticky Bit

chmod 1757 directoryname

Met dit commando worden de sticky bit (1) en de machtigingen (757) voor 'directorynaam' ingesteld.

  • Het sticky bit (1) zorgt ervoor dat alleen de bestandseigenaar, mapeigenaar of rootgebruiker bestanden kan verwijderen of hernoemen.
  • 757: Stelt de rechten van de gebruiker in om te lezen, schrijven en uitvoeren (7), en de rechten van de groep en anderen om te lezen, schrijven en sticky bit (5, 7).

Dit is vooral handig voor mappen die door meerdere gebruikers worden gedeeld, zoals /tmp, om te voorkomen dat gebruikers elkaars bestanden verwijderen of hernoemen.

Voorbeeld 10: chmod gebruiken met Find-opdracht

find . -type f -exec chmod 644 {} \;

Met deze opdracht worden alle gewone bestanden in de huidige map en de submappen gevonden en worden hun machtigingen gewijzigd naar 644 (lezen/schrijven voor de eigenaar en lezen voor de groep en anderen).

  • find . -type f: Zoekt alle bestanden in de huidige map en submappen.
  • -exec chmod 644 {} \;: Wijzigt de rechten van elk gevonden bestand.

Deze opdracht is handig als u de machtigingen van meerdere bestanden wilt wijzigen op basis van bepaalde criteria.

Geavanceerde chmod-opdrachtvoorbeelden

Zoals met elk Linux commando, heeft chmod een paar trucjes die je leven nog makkelijker kunnen maken. Laten we deze geavanceerde voorbeelden eens bekijken.

Geavanceerd voorbeeld 1: machtigingen recursief wijzigen

chmod -R 755 directoryname

Met deze opdracht worden de machtigingen van de map en de gehele inhoud ervan recursief gewijzigd. Dit is wat het doet:

  • -R: Dit is de recursieve optie. Het past de wijziging toe op de mappen en de bestanden in die mappen.
  • 755: Hiermee worden de machtigingen van de gebruiker ingesteld op lezen, schrijven en uitvoeren (7) en de machtigingen van de groep en anderen op lezen en uitvoeren (5).

Dit is vooral handig als u de machtigingen van een map en alle bestanden en submappen daarin wilt wijzigen.

Geavanceerd voorbeeld 2: Setuid, Setgid en Sticky Bits instellen

chmod 4755 filename
chmod 2755 directoryname
chmod 1755 directoryname

Met deze opdrachten worden de setuid-, setgid- en sticky-bits voor een bestand of map ingesteld:

  • De setuid-bit (4): Wanneer deze is ingesteld voor een bestand, kunnen gebruikers het bestand uitvoeren met de machtigingen van de eigenaar van het bestand.
  • De setgid bit (2): Wanneer ingesteld op een map, zorgt dit ervoor dat nieuwe bestanden en submappen die daarin worden aangemaakt, de groep ervan overnemen, in plaats van de primaire groep van de creërende gebruiker.
  • De sticky bit (1): Beschermt het verwijderen van bestanden binnen een directory. Wanneer ingesteld, kunnen bestanden alleen worden verwijderd door hun eigenaar, de directory-eigenaar of de root-gebruiker.

Geavanceerd voorbeeld 3: Alleen machtigingen voor mappen wijzigen

find /path -type d -exec chmod 755 {} \;

Met deze opdracht worden alleen de machtigingen van de mappen onder een bepaald pad gewijzigd, waardoor de bestanden blijven zoals ze zijn:

  • find /path -type d: Vindt alle mappen onder het opgegeven pad.
  • -exec chmod 755 {} \;: Wijzigt de rechten van elke gevonden map.

Deze opdracht is handig als u alleen de machtigingen van de mappen wilt wijzigen, niet van de bestanden.

Geavanceerd voorbeeld 4: Alleen machtigingen voor bestanden wijzigen

find /path -type f -exec chmod 644 {} \;

Met deze opdracht worden alleen de machtigingen van de bestanden onder een bepaald pad gewijzigd, waarbij de mappen blijven zoals ze zijn:

  • find /path -type f: Vindt alle bestanden onder het opgegeven pad.
  • -exec chmod 644 {} \;: Wijzigt de rechten van elk gevonden bestand.

Deze opdracht is handig als u alleen de machtigingen van de bestanden wilt wijzigen, niet van de mappen.

Geavanceerd voorbeeld 5: Een script uitvoerbaar maken voor iedereen

chmod +x scriptname

Met deze opdracht wordt de uitvoeringsmachtiging toegevoegd aan de gebruiker, groep en anderen voor 'scriptnaam':

  • +x: Voegt uitvoerrechten toe.

Dit is een gebruikelijke handeling wanneer u een nieuw script maakt en dit uitvoerbaar wilt maken.

Conclusie

De opdracht chmod is een essentieel hulpprogramma in Linux voor het beheren van bestandsrechten. Van het basisgebruik tot meer geavanceerde technieken zoals recursieve wijzigingen en het instellen van speciale bits: het begrijpen van chmod is de sleutel tot effectief Linux-bestandsbeheer. Met de gegeven voorbeelden zou u vol vertrouwen de machtigingen moeten kunnen instellen op basis van uw behoeften en uw productiviteit in de Linux-omgeving kunnen verhogen.

Joshua James
Volg mij
Laatste berichten van Joshua James (alles zien)

Plaats een reactie