Chmod - chmod - Wikipedia
![]() The chmod příkaz | |
Původní autoři | AT&T Bell Laboratories |
---|---|
Vývojáři | Rozličný open-source a komerční vývojáři |
První vydání | 3. listopadu 1971 |
Operační systém | Unix, Unixový, Plán 9, Peklo, IBM i |
Plošina | Cross-platform |
Typ | Příkaz |
Licence | coreutils: GPLv3 |
v Unix a Unixový operační systémy, chmod je příkaz a systémové volání který se používá ke změně přístupová oprávnění z souborový systém předměty (soubory a adresáře ). Používá se také ke změně speciální režim vlajky. Žádost je filtrována podle umask. Název je zkratkou změnit režim.[1]
Dějiny
A chmod příkaz se poprvé objevil v AT&T Unix verze 1.
Jak systémy rostly v počtu a typech uživatelů, seznamy řízení přístupu[2] byly přidány do mnoha souborových systémů kromě těchto nejzákladnějších režimů pro zvýšení flexibility.
Verze chmod svázaný GNU coreutils napsal David MacKenzie a Jim Meyering.[3]
The chmod příkaz byl také přenesen do IBM i operační systém.[4]
Syntaxe příkazu
![]() | Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
V této části user odkazuje na vlastníka souboru jako připomínka, že symbolická forma příkazu používá "u".
chmod [možnosti] režim [, režim] soubor1 [soubor2 ...]
[5]
Obvykle implementované možnosti zahrnují:
-R
Rekurzivní, tj. Zahrnout objekty do podadresářů.-proti
podrobně, zobrazit změněné objekty (nezměněné objekty se nezobrazí).
Pokud symbolický odkaz je zadán, je ovlivněn cílový objekt. Režimy souborů přímo spojené se samotnými symbolickými odkazy se obvykle nepoužívají.
Chcete-li zobrazit režim souborů, je
nebo stat
lze použít příkazy:
$ ls -l findPhoneNumbers.sh-rwxr-xr-- 1 německý personál 823 16. prosince 15:03 findPhoneNumbers.sh$ stat -c% a findPhoneNumbers.sh754
The r
, w
, a X
zadejte přístup pro čtení, zápis a spuštění. První postava je displej označuje typ objektu; A pomlčka představuje obyčejný soubor. Tento skript může uživatel číst, zapisovat do něj a spouštět jej Němec; přečteny a provedeny členy personál skupina; a číst pouze jakýmikoli jinými uživateli.
Osmičkové režimy
Hlavní části chmod oprávnění:
Například: drwxrwx ---
Znaky vpravo od písmene „d“ definují oprávnění pro každý z nich třída:
- tři znaky nejvíce vlevo,
rwx
, definovat oprávnění pro Uživatel vlastník souboru). - prostřední tři postavy,
rwx
, definovat oprávnění pro Skupina třída (tj skupina vlastnit soubor) - poslední tři znaky,
---
, definovat oprávnění pro Ostatní třída. V tomto příkladu uživatelé, kteří nejsou vlastníkem souboru a kteří nejsou členy souboru Skupina (a tedy jsou v Ostatní třída) nemají oprávnění k přístupu k souboru.
Číselná oprávnění
The chmod numerický formát přijímá až čtyři osmičkové číslice. Tři číslice zcela vpravo definují oprávnění pro uživatele souboru, skupinu a další. Volitelná úvodní číslice, jsou-li zadány 4 číslice, určuje specialitu setuid, setgid, a lepkavý vlajky. Každá číslice tří číslic zcela vpravo představuje binární hodnotu, která řídí oprávnění „číst“, „zapisovat“ a „spouštět“. Hodnota 1 znamená, že třídě je povolena tato akce, zatímco 0 znamená, že je zakázána.
# | Povolení | rwx | Binární |
---|---|---|---|
7 | číst, psát a vykonávat | rwx | 111 |
6 | číst a psát | rw- | 110 |
5 | číst a provádět | r-x | 101 |
4 | pouze ke čtení | r-- | 100 |
3 | psát a vykonávat | -wx | 011 |
2 | jen psát | -w- | 010 |
1 | pouze spustit | --X | 001 |
0 | žádný | --- | 000 |
Například, 754
by umožnilo:
- "read" (4), "write" (2) a "execute" (1) pro Uživatel třída, protože binární hodnota 7 (4 + 2 + 1) je 111.
- "číst" (4) a "spustit" (1) pro Skupina třídy, protože binární hodnota 5 (4 + 1) je 101.
- Pouze "číst" (4) pro Ostatní třídy, protože binární hodnota 4 (4) je 100.
Numerický příklad
Změňte oprávnění, abyste povolili členům programátoři skupina pro aktualizaci souboru:
$ ls -l sharedFile-rw-r - r-- 1 jsmith programátoři 57 3. července 10:13 sharedFile$ chmod 664 sharedFile$ ls -l sharedFile-rw-rw-r-- 1 jsmith programátoři 57 3. července 10:13 sharedFile
Protože setuid, setgid a lepkavý bity nejsou specifikovány, to odpovídá:
$ chmod 0664 sharedFile
Symbolické režimy
The chmod příkaz také přijímá jemnější symbolickou notaci,[6] což umožňuje úpravy konkrétních režimů, zatímco ostatní režimy zůstávají nedotčené. Symbolický režim se skládá ze tří komponent, které jsou kombinovány do jediného řetězce textu:
$ chmod [Reference][operátor][režimy] pilník ...
Třídy uživatelů se používají k rozlišení, na koho se oprávnění vztahují. Pokud nejsou zadány žádné třídy, znamená to „vše“. Třídy jsou reprezentovány jedním nebo více z následujících písmen:
Odkaz | Třída | Popis |
---|---|---|
u | uživatel | vlastník souboru |
G | skupina | členové skupiny souboru |
Ó | ostatní | uživatelé, kteří nejsou vlastníkem souboru ani členy skupiny souboru |
A | Všechno | všechny tři výše uvedené, stejné jako ugo |
The chmod program používá operátor k určení, jak by měly být upraveny režimy souboru. Přijímají se následující operátoři:
Operátor | Popis |
---|---|
+ | přidá zadané režimy do zadaných tříd |
- | odebere zadané režimy ze zadaných tříd |
= | ze zadaných režimů je třeba udělat přesné režimy pro zadané třídy |
Režimy označují, která oprávnění mají být udělena nebo odebrána ze zadaných tříd. Existují tři základní režimy, které odpovídají základním oprávněním:
Režim | název | Popis |
---|---|---|
r | číst | rčtěte soubor nebo vypsejte obsah adresáře |
w | psát si | write do souboru nebo adresáře |
X | vykonat | EXrozbalte soubor nebo opakujte adresářový strom |
X | speciální provedení | což není povolení samo o sobě, ale spíše může být použito místo X. Aplikuje oprávnění ke spuštění na adresáře bez ohledu na jejich aktuální oprávnění a používá oprávnění ke spuštění pro soubor, který již má nastavený alespoň jeden bit oprávnění ke spuštění (buď Uživatel, Skupina nebo Ostatní). Je to opravdu užitečné pouze při použití s + a obvykle v kombinaci s -R vlajka pro dávání Skupina nebo Ostatní přístup k velkému adresářovému stromu bez nastavení povolení spouštět normální soubory (například textové soubory), což by se normálně stalo, kdybyste použili chmod -R a + rx. , zatímco s X můžete dělat chmod -R a + rX. namísto |
s | setuid / gid | podrobnosti v Sekce speciálních režimů |
t | lepkavý | podrobnosti v Sekce speciálních režimů |
Lze zadat více změn oddělením více symbolických režimů čárkami (bez mezer). Pokud uživatel není zadán, chmod
zkontroluje umask a účinek bude jako kdyby “A"bylo specifikováno s výjimkou, že bity, které jsou nastaveny v umask, nejsou ovlivněny.[7]
Symbolické příklady
- Přidat oprávnění k zápisu (w) do skupiny (G) režimy přístupu k adresáři, které umožňují uživatelům ve stejné skupině přidávat soubory:
$ ls -ld shared_dir # zobrazit režimy přístupu před chmoddrwxr-xr-x 2 teamleader usguys 96 8. dubna 12:53 shared_dir$ chmod g + w shared_dir$ ls -ld shared_dir # zobrazit režimy přístupu po chmoddrwxrwxr-x 2 teamleader usguys 96 8. dubna 12:53 shared_dir
- Odebrat oprávnění k zápisu (w) pro všechny třídy (A), což komukoli brání v zápisu do souboru:
$ Je to náš nejlepší referenční soubor-rw-rw-r-- 2 teamleader usguys 96 dub 8 12:53 ourBestReferenceFile$ chmod a-w ourBestReferenceFile$ Je to náš nejlepší referenční soubor-r - r - r-- 2 teamleader usguys 96 8. dubna 12:53 ourBestReferenceFile
- Nastavte oprávnění pro user a skupina (ug) číst a spouštět (rx) pouze (bez oprávnění k zápisu) na referenceLibbrání komukoli v přidávání souborů.
$ ls -ld referenceLibdrwxr ----- 2 teamleader usguys 96 8. dubna 12:53 referenceLib$ chmod ug=rx referenceLib$ ls -ld referenceLibdr-xr-x --- 2 teamleader usguys 96 8. dubna 12:53 referenceLib
Speciální režimy
The chmod příkaz je také schopen změnit další oprávnění nebo speciální režimy souboru nebo adresáře. Symbolické režimy používají 's"reprezentovat setuid a setgid režimy a 't"reprezentovat lepkavý režimu. Režimy se použijí pouze na příslušné třídy, bez ohledu na to, zda jsou zadány jiné třídy či nikoli.
Většina operačních systémů podporuje specifikaci speciálních režimů pomocí osmičkových režimů, ale některé nikoli. Na těchto systémech lze použít pouze symbolické režimy.
Příklady příkazového řádku
Příkaz | Vysvětlení |
---|---|
chmod a + r publicComments.txt | přidává oprávnění ke čtení pro všechny třídy (tj. user, Skupina a Ostatní) |
chmod a-x publicComments.txt | odebere oprávnění ke spuštění pro všechny třídy |
chmod a + rx prohlížeč.sh | přidává oprávnění ke čtení a provádění pro všechny třídy |
chmod u = rw, g = r, o = internalPlan.txt | nastavuje oprávnění pro čtení a zápis pro user, sady číst pro Skupinaa odmítá přístup pro Ostatní |
chmod -R u + w, go-w dokumenty | přidá oprávnění k zápisu do adresáře dokumenty a veškerý jeho obsah (tj. Rrekurzivně) pro vlastníka a odebere oprávnění k zápisu pro skupinu a další |
chmod ug = rw groupAgreements.txt | nastavuje oprávnění pro čtení a zápis pro user a Skupina |
chmod 664 global.txt | nastavuje oprávnění pro čtení a zápis pro user a Skupinaa poskytuje čtení Ostatní. |
chmod 744 myCV.txt | nastavuje oprávnění pro čtení, zápis a provádění pro usera nastavuje oprávnění ke čtení pro Skupina a Ostatní |
chmod 1755 findReslts.sh | nastaví lepivý bit, nastaví oprávnění pro čtení, zápis a spuštění pro vlastníka a nastaví oprávnění pro čtení a spuštění pro skupinu a další (to naznačuje, že skript bude zachován v paměti) |
chmod 4755 setCtrls.sh | sady UID, nastavuje oprávnění pro čtení, zápis a provádění pro usera nastavuje oprávnění pro čtení a spouštění pro Skupina a Ostatní |
chmod 2755 setCtrls.sh | sady GID, nastavuje oprávnění pro čtení, zápis a provádění pro usera nastavuje oprávnění pro čtení a spouštění pro Skupina a Ostatní |
chmod -R u + rwX, g-rwx, o-rx osobní věci | Rrekurzivně (tj. na všechny soubory a adresáře v osobní věci) přidává oprávnění pro čtení, zápis a speciální provádění pro user, odebere oprávnění ke čtení, zápisu a spuštění pro Skupinaa odebere oprávnění ke čtení a provádění pro Ostatní |
chmod -R a-x + X publicDocs | Rrekurzivně (tj. na všechny soubory a adresáře v publicDocs) odebere oprávnění ke spuštění pro všechny třídy a přidá speciální oprávnění ke spuštění pro všechny třídy |
Systémové volání
The POSIX Standard definuje následující funkční prototyp:[8]
int chmod (const char * path, mode_t mode);
The režimu parametr je bitové pole složené z různých příznaků:
Vlajka | Osmičková hodnota | Účel |
---|---|---|
S_ISUID | 04000 | Nastavit ID uživatele při provádění |
S_ISGID | 02000 | Nastavit ID skupiny při provádění |
S_ISVTX | 01000 | Lepkavý kousek |
S_IRUSR, S_IREAD | 00400 | Číst user |
S_IWUSR, S_IWRITE | 00200 | Napište user |
S_IXUSR, S_IEXEC | 00100 | Provádět / hledat podle user |
S_IRGRP | 00040 | Číst podle skupiny |
S_IWGRP | 00020 | Napište podle skupiny |
S_IXGRP | 00010 | Provádět / hledat podle skupiny |
S_IROTH | 00004 | Přečtěte si ostatní |
S_IWOTH | 00002 | Napište ostatní |
S_IXOTH | 00001 | Provádět / hledat jinými |
Viz také
- Oprávnění systému souborů
- Režimy (Unix)
chattr
, příkaz používaný ke změně atributů souboru nebo adresáře v systémech Linuxchown
, příkaz používaný ke změně vlastníka souboru nebo adresáře v systémech podobných systému Unixchgrp
, příkaz používaný ke změně skupiny souboru nebo adresáře v systémech podobných systému Unixcacls
, příkaz použitý na Windows NT a jeho deriváty k úpravě seznamů řízení přístupu přidružených k souboru nebo adresářiattrib
umask
, omezuje režim (oprávnění) při vytváření souborů nebo adresářů v systémech podobných Unixu- Identifikátor uživatele
- Identifikátor skupiny
- Seznam unixových příkazů
Reference
- ^ "Výukový program pro chmod". catcode.com.
- ^ „Správa systému AIX 5.3“. IBM Knowledge Center. IBM. Citováno 30. srpna 2015.
- ^ "chmod (1): změnit bity režimu souboru - manuálová stránka Linuxu". linux.die.net.
- ^ IBM. „IBM System i verze 7.2 Programování Qshell“ (PDF). Citováno 5. září 2020.
- ^ "Stránka chmod Man s příklady a kalkulačkou - Linux - SS64.com". ss64.com.
- ^ „Referenční příručka k AIX 5.5“. IBM Knowledge Center. IBM. Citováno 30. srpna 2015.
- ^ "Maskování oprávnění pomocí umask, chmod, 777 osmičkových oprávnění". teach.idallen.com.
- ^ "funkce chmod". The Open Group Base Specification Issue 7, 2013 Edition. Otevřená skupina. Citováno 30. srpna 2015.
externí odkazy
- FreeBSD Obecné příkazy Manuál : změnit režimy souborů -
- Plán 9 Programátorská příručka, svazek 1 –
- Peklo Obecné příkazy Manuál –
chmod
- manuální stránka z GNU coreutils.- GNU "Nastavení oprávnění" manuál
- CHMOD-Win 3.0 - Freeware Windows ACL ← → CHMOD převodník.
- Výukový program pro začátečníky s online „živým“ příkladem