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:
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:
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:
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:
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:
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. |