Příkaz chmod umožňuje upravit oprávnění souboru nebo adresáře. Pouze vlastník souboru nebo adresáře nebo správce systému může změnit oprávnění objektu.
Syntaxe
Syntaxe příkazu chmod je:
# chmod [options] {mode} {file/ directory name}
Možnosti příkazu chmod
Příkaz chmod podporuje různé možnosti úpravy oprávnění. Najednou lze použít jednu nebo více těchto možností.
Možnost | Popis |
---|---|
-c | Nahlásit změny provedené v oprávněních. |
-f | Skryjte většinu chybových zpráv. |
-v | Zobrazit diagnostický záznam pro každý zpracovaný soubor. |
-R | Rekurzivně upravujte oprávnění souborů a adresářů. |
Bity oprávnění aplikované na objekt systému souborů přímo odpovídají hodnotám, které lze zadat ve 4místném n-tici dodaném obslužnému programu chmod v následujícím příkazu:
# chmod abcd [file system object]
Každá hodnota v sadě číslic abcd se skládá ze součtu hodnot 1 2 a 4. Sečtením těchto hodnot pro každou číslici lze vygenerovat hodnotu pro nastavení všech atributů objektu souboru:
- a – Tato číslice řídí nastavení speciálních atributů. hodnota 1 nastavuje bit setuid, hodnota 2 nastavuje bit setgid a hodnota 4 nastavuje bit sticky na objektu.
- b, c a d – Tyto číslice řídí oprávnění ke čtení, zápisu a spouštění pro vlastníka souboru, primární skupinu vlastníků souborů a všechny ostatní uživatele. Hodnota 4 povolí oprávnění ke čtení, hodnota 2 povolí oprávnění k zápisu a hodnota 1 povolí oprávnění ke spuštění.
Chcete-li nastavit soubor souboru tak, aby byl fixní, čitelný a zapisovatelný vlastníkem, čitelný pro jeho primární skupinu a nepřístupný všem ostatním:
# chmod 4610 filename
Chcete-li udělit všechna oprávnění všem v systému:
# chmod 0777 filename
Pokud při spouštění příkazu chmod narazíte na níže uvedenou chybu:
chmod: command not found
můžete zkusit nainstalovat níže uvedený balíček podle vaší volby distribuce:
Distribuce | Příkaz |
---|---|
OS X | brew install coreutils |
Debian | apt-get install coreutils |
Ubuntu | apt-get install coreutils |
Alpine | apk add coreutils |
Arch Linux | pacman -S coreutils |
Kali Linux | apt-get install coreutils |
CentOS | yum install coreutils |
Fedora | dnf install coreutils |
Raspbian | apt-get install coreutils |
Příklady příkazů chmod
1. Dejte [uživateli], který vlastní soubor, právo jej [x] spustit:
# chmod u+x path/to/file
2. Udělte [uživateli] práva na [č]íst a [w]zápis do souboru/adresáře:
# chmod u+rw path/to/file_or_directory
3. Odeberte e[x]spouštěcí práva z [g]skupiny:
# chmod g-x path/to/file
4. Udělte [a]všem uživatelům práva [r]číst a [x]ecute:
# chmod a+rx path/to/file
5. Dejte [o]ostatním (ne ve skupině vlastníka souboru) stejná práva jako [g]skupině:
# chmod o=g path/to/file
6. Odeberte všechna práva [o]ostatním:
# chmod o= path/to/file
7. Změňte oprávnění rekurzivně a dejte [g]skupině a [ostatním] možnost [w]psát:
# chmod -R g+w,o+w path/to/directory
8. Rekurzivně udělujte [všem uživatelům] oprávnění ke čtení souborů a [X]ečtení oprávnění k podadresářům v adresáři:
# chmod -R a+rX path/to/directory
Závěr
Na systémech Unix a Linux byste k nastavení hodnot oprávnění pro soubory a adresáře použili nástroj chmod. Můžete nastavit oprávnění pro uživatele souboru nebo adresáře, skupinu, která je k souboru nebo adresáři přidružena, a další. Tři základní oprávnění jsou následující:
- r :Označuje oprávnění ke čtení.
- w :Označuje oprávnění k zápisu.
- x :Toto je oprávnění ke spuštění. Můžete jej použít na jakýkoli typ souboru programu nebo na adresáře. Pokud na adresář použijete spustitelné oprávnění, budou do něj moci autorizovaní lidé cd.