logo

Chmod-opdracht in Linux/Unix met voorbeelden

De Linux chmod-opdracht wordt gebruikt om de toegangsrechten van bestanden en mappen te wijzigen. Het staat voor modus wijzigen . Het kan de toestemming van symbolische links niet wijzigen. Het negeert zelfs de symbolische links die recursieve directory-traversatie tegenkomen.

In de Linux bestandssysteem, elk bestand is gekoppeld aan een bepaalde eigenaar en heeft toestemmingstoegang voor verschillende gebruikers. De gebruikersklassen kunnen zijn:

  • eigenaar
  • groepslid
  • Anderen (iedereen)

De bestandsrechten in Linux zijn de volgende drie typen:

  • lezen (r)
  • schrijf (w)
  • uitvoeren (x)

Korte geschiedenis van Chmod

Ten eerste wordt het chmod-commando weergegeven in AT&T UNIX versie 1 met de chmod-systeemaanroep. De toegangscontrolelijsten zijn opgenomen in verschillende bestandssystemen, inclusief deze meest voorkomende modi, om de flexibiliteit te vergroten, omdat systemen in typen en in aantal gebruikers groeiden.

De chmod-versie gerangschikt in GNU coreutils werd gespecificeerd door Jim Meyering en David MacKenzie. Deze opdracht is aanwezig als een geïsoleerd pakket voor Microsoft Windows als onderdeel van de UnxUtils native Win32-poortcollectie van standaard GNU Unix-achtige hulpprogramma's. Bovendien is de opdracht chmod verzonden naar het IBM i OS.

Laten we eens kijken hoe we de bestandsrechten kunnen wijzigen met de opdracht chmod.

Syntaxis:

ctc volledige vorm

De basissyntaxis van de opdracht chmod is als volgt:

 chmod 

Algemeen geïmplementeerde opties zijn:

    -R:Het staat voor recursief, dat wil zeggen: objecten toevoegen aan submappen.-IN:Het staat voor uitgebreid, weergaveobjecten gewijzigd (ongewijzigde objecten worden niet weergegeven).

Het doelobject wordt beïnvloed als er een symbolische link wordt vermeld. Bestandsmodi die rechtstreeks verband houden met symbolische koppelingen zelf, worden doorgaans niet gebruikt.

Het primaire onderdeel van de chmod-toestemming:

Bijvoorbeeld, rwxr-x---

Alle groepen van drie tekens specificeren machtigingen voor alle klassen:

    rwx:De meest linkse drie tekens specificeren de machtigingen voor de bestandseigenaar (d.w.z. de klasse User).r-x:De drie middelste tekens specificeren de machtigingen voor de groep die eigenaar is van het bestand (dat wil zeggen de groepsklasse).---:De drie meest rechtse tekens specificeren de machtigingen voor de klasse Other. Gebruikers die niet de bestandseigenaar zijn en groepsleden hebben geen toegang tot het bestand.

Opties:

hallo wereld met java

De opdracht chmod ondersteunt de volgende opdrachtregelopties:

-c, --wijzigingen: Het is vergelijkbaar met de uitgebreide optie, maar het verschil is dat er wordt gerapporteerd als er een wijziging is aangebracht.

-f, --stil, --stil: Het wordt gebruikt om de foutmeldingen te onderdrukken.

-v, --uitgebreid: Het wordt gebruikt om voor elk verwerkt bestand een diagnose weer te geven.

--no-preserve-root: Het wordt gebruikt om het backslash-symbool ('/') niet te behandelen, vooral (de standaardinstelling).

--behoud-root: Als deze optie wordt gebruikt, werkt deze niet recursief op backslash ('/').

--referentie=RFILE: Het wordt gebruikt om de RFILE-modus of MODE-waarden te specificeren.

-R, --recursief: Het wordt gebruikt om bestanden en mappen recursief te wijzigen.

--hulp: Het wordt gebruikt om de helphandleiding weer te geven met een korte beschrijving van gebruiks- en ondersteuningsopties.

--versie: Het wordt gebruikt om de versie-informatie weer te geven.

Syntaxis van bestandsmachtigingen

Als u een nieuwe gebruiker bent, kunt u in de war raken met de verschillende soorten letters die worden gebruikt om de bestandsrechten in te stellen. Voordat we verder gaan met de opdracht chmod, moeten we eerst de syntaxis van de bestandsrechten begrijpen.

Om de toestemming van een bestand of map in te stellen, moeten we de volgende zaken specificeren:

  • Wie: Wie wij zijn. (gebruiker)
  • Wat: Welke wijziging gaan we aanbrengen (zoals het toevoegen of verwijderen van de toestemming)?
  • Welke: Welke van de machtigingen?

De toestemmingsverklaring wordt weergegeven in indicatoren zoals u+x, u-x. Waar 'u' staat voor 'gebruiker', '+' staat voor toevoegen, '-' staat voor verwijderen, 'x' staat voor uitvoerbaar (welke).

ingesteld in Java

De gebruikerswaarde kan zijn:

u: de eigenaar van het bestand

g: groepslid

o: anderen

een: allemaal

De machtigingstypen kunnen r, w en x zijn.

De machtigingen instellen en bijwerken

Om de toestemming van een bestand in te stellen, voert u een toestemmingsinstructie uit met de opdracht chmod. We willen bijvoorbeeld de lees- en schrijfrechten instellen voor alle gebruikers en groepen van het bestand 'Demo.txt'. We moeten de toestemmingsverklaring 'u=rw,go=rw Demo.txt' doorgeven met de opdracht chmod. Om de bestandsrechten weer te geven, voert u de onderstaande opdracht uit:

 ls -l Demo.txt 

Met de bovenstaande opdracht wordt de huidige bestandsmachtiging van het bestand 'Demo.txt' weergegeven.

Om de toestemming te wijzigen, voert u de onderstaande opdracht uit:

 chmod u=rw,go=rw Demo.txt 

Beschouw de onderstaande uitvoer:

Linux chmod-opdracht

Uit de bovenstaande uitvoer is de toegangsmachtiging van 'Demo.txt' gewijzigd.

Machtigingen instellen voor meerdere bestanden

We kunnen toestemming voor meerdere bestanden tegelijk instellen met behulp van de opdracht chmod. Om de bestandsrechten van meerdere bestanden te wijzigen, geeft u het bestandspatroon op met de opdracht chmod. Als we bijvoorbeeld lees- en schrijfrechten voor alle tekstbestanden willen instellen, geeft u de *. txt-patroon met chmod-opdracht.

Om de toestemming van alle tekstbestanden uit de huidige werkmap te bekijken, voert u de onderstaande opdracht uit:

 ls -l *.txt 

Het toont alle tekstbestanden met hun toestemmingsmodus. Beschouw de onderstaande uitvoer:

Linux chmod-opdracht

Uit de bovenstaande uitvoer blijkt dat veel bestanden alleen leesrechten hebben voor andere gebruikers.

Voer de onderstaande opdracht uit om de lees- en schrijfrechten voor andere gebruikers in te stellen:

 chmod o+w *.txt 

Het stelt de lees- en schrijfrechten in voor andere gebruikers van de tekstbestanden. Beschouw de onderstaande uitvoer:

Linux chmod-opdracht

Numerieke afkorting

We kunnen de numerieke waarden gebruiken in plaats van letters om de machtigingen te specificeren. Er wordt een driecijferige waarde gebruikt om de toestemming aan te geven. Het meest linkse cijfer vertegenwoordigt de eigenaar (u), en het middelste cijfer vertegenwoordigt de groepsleden (g). Het meest rechtse cijfer vertegenwoordigt de andere (o).

De volgende tabel geeft de cijfers en hun rechten weer:

Cijfers Rechten
000 Geen toestemming
001 Toestemming uitvoeren
010 Schrijf toestemming
011 Machtigingen schrijven en uitvoeren
100 Lees toestemming
101 Machtigingen lezen en uitvoeren
110 Lees- en schrijfrechten
111 Machtigingen voor lezen, schrijven en uitvoeren

Symbolische modi

Bovendien accepteert het chmod-commando de fijnmaziger symbolische notatie, waardoor het mogelijk is specifieke modi te wijzigen. De symbolische modus bestaat uit drie elementen, die worden samengevoegd tot één enkele tekstreeks:

 $ chmod [references] [operator] [modes] file... 

Het chmod-programma past een operator toe om te definiëren hoe de bestandsmodi moeten worden gerangschikt. De onderstaande operators zijn goedgekeurd:

Exploitant Beschrijving
+ Het voegt het beschreven toe aan de beschreven klassen.
- Het verwijdert de beschreven modus uit de beschreven klassen.
= Het vertegenwoordigt dat de beschreven modi dezelfde modi moeten creëren voor de beschreven klassen.

De modi geven aan welke machtigingen moeten worden verwijderd of verleend aan de beschreven klassen. Er zijn hoofdzakelijk drie algemene modi die verband houden met de algemene machtigingen:

Naam Modus Beschrijving
lezen R Het leest een bestand of geeft de inhoud van een map weer.
schrijven In Het schrijft naar een map of bestand.
uitvoeren X Het herhaalt een directorystructuur of voert een bestand uit.
speciale uitvoering X Het is geen toestemming, maar kan in plaats daarvan worden gebruikt in plaats van x. Het gebruikt de uitvoerrechten voor mappen ondanks hun huidige machtigingen en gebruikt de uitvoerrechten voor een bestand waarvoor ten minste een uitvoermachtigingsbit is ingesteld. Het is handig als het wordt gebruikt met de '+' operator en zonder de uitvoerrechten in te stellen, wat zou gebeuren als we gewoon chmod -R a+rx zouden gebruiken., terwijl we chmod -R a+rx kunnen implementeren. met x liever.

Meerdere wijzigingen kunnen worden beschreven door meerdere symbolische modi samen met komma's te isoleren. Het chmod-commando inspecteert het masker als er geen gebruiker is opgegeven.

Speciale modi

Ook kan het chmod-commando de speciale modi en extra rechten van een map of bestand wijzigen. De symbolische modi passen 's' toe om de setgid- en setuid-modi aan te geven, en 't' om de sticky-modus aan te geven. Een modus wordt alleen gebruikt voor de juiste klassen, ongeacht of er andere klassen worden vermeld of niet.

script uitvoerbaar maken

Bijna alle besturingssystemen ondersteunen numeriek de speciale modusspecificatie, vooral in octaal, maar een paar doen dat niet. Alleen de symbolische modi kunnen op deze systemen worden toegepast.

Enkele voorbeelden van de opdrachtregel:

Commando Beschrijving
chmod a+r publicComments.txt Het voegt de leesrechten toe voor elke klasse (d.w.z. Groep, Eigenaar en Overige).
chmod a-x publicComments.txt Het verwijdert de uitvoerrechten voor elke klasse.
chmod a+rx-viewer.sh Het voegt de uitvoer- en leesrechten voor elke klasse toe.
chmod u=rw, g=r, o=internPlan.txt Het stelt de schrijf- en leesrechten voor de gebruiker in, leest de groep voor en weigert de toegang voor anderen.
chmod -R u+w, go-w docs Het omvat de schrijfrechten voor de mapdocumenten en elk van de inhoud ervan voor de eigenaar en verwijdert de schrijfrechten voor anderen en de groep.
chmod en=rw groupAgreements.txt Het stelt de schrijf- en leesrechten voor groep en gebruiker in.
chmod 664 global.txt Het stelt de schrijf- en leesrechten in voor de groep en de gebruiker en geeft de leesrechten aan anderen.
chmod 744 Show_myCV.sh Het stelt de uitvoerings-, schrijf- en leesrechten voor de gebruiker in en geeft de leesrechten aan Group en Anderen.