Úvod
Systémy pro více uživatelů, jako je Linux, vyžadují nastavení a správu oprávnění k souborům, která zajistí, že pouze oprávnění uživatelé budou mít přístup k souborům, o kterých se předpokládá.
Pokud potřebujete změnit oprávnění k souboru, použijte chmod
příkaz. Umožňuje také rekurzivně změnit oprávnění k souboru pro konfiguraci více souborů a podadresářů pomocí jediného příkazu.
V tomto tutoriálu se naučíte, jak rekurzivně používat chmod a měnit oprávnění k souborům v systému Linux.

Předpoklady
- Příkazový řádek / okno terminálu (Ctrl +Alt +T nebo Ctrl +Alt+F2 )
- Uživatelský účet s sudo oprávnění (volitelné)
- Systém Linux
Zkontrolujte oprávnění k souboru
Pokud potřebujete zkontrolovat oprávnění k souboru v pracovním adresáři, použijte příkaz:
ls –l
Výstup obsahuje seznam oprávnění všech souborů v adresáři.
Například Příklad adresář obsahuje tři soubory (test1.txt , test2.txt a test3.txt ) se stejnými oprávněními (-rw-rw-r– ).

Výše uvedená oprávnění k souboru nám říkají následující:
- vlastník má oprávnění pro čtení a zápis
- Skupina vlastníka má oprávnění pro čtení a zápis
- Ostatní uživatelé mít oprávnění ke čtení
Rekurzivně změnit oprávnění
Běžně se používá základní chmod
příkaz pro změnu oprávnění jednoho souboru. Možná však budete muset upravit oprávnění rekurzivně pro všechny soubory v adresáři.
V takových případech chmod rekurzivní možnost (-R
nebo --recursive
) nastavuje oprávnění pro adresář (a soubory, které obsahuje).
Syntaxe pro rekurzivní změnu oprávnění k souboru je:
chmod -R [permission] [directory]
Proto pro nastavení 755 oprávnění pro všechny soubory v Příkladu adresář, zadejte:
sudo chmod -R 755 Example
Příkaz umožňuje číst, zapisovat a spouštět oprávnění vlastníka (7 ) a číst a spustit přístup všem ostatním (55 ).

Změňte oprávnění pomocí příkazu find
Chcete-li přiřadit samostatná oprávnění k adresářům a souborům, můžete použít find
příkaz.
Základní syntaxe zahrnuje použití find
k vyhledání souborů/adresářů a jejich předání do chmod
pro nastavení oprávnění:
sudo find [directory] -type [d/f] -exec chmod [privilege] {} \;
- Nahraďte
[directory]
s cestou k adresáři, která obsahuje soubory a podadresáře, které chcete konfigurovat. - Upřesněte, zda hledá adresář
-type d
nebo soubor-type f
. - Nastavte soubor
[privilege]
pomocíchmod
pomocí numerického nebo symbolického režimu.
Vyhněte se přidělování oprávnění ke spuštění souborům. Běžné nastavení by zahrnovalo spuštění následujících příkazů:
sudo find Example -type d -exec chmod 755 {} \;
sudo find Example -type f -exec chmod 644 {} \;
V tomto příkladu mají adresáře 755 (u=rwx,go=rx ) oprávnění, zatímco soubory mají 644 (u=rw,go=r) oprávnění.

Chcete-li ověřit, že adresáře a soubory mají různá nastavení oprávnění, přejděte do Příkladu adresář (cd Example
) a výpis obsahu (ls -l
). Výstup by měl být podobný níže uvedenému:

Rekurzivně změnit oprávnění konkrétních souborů
Kombinace find
pomocí příkazu chmod
lze také použít pro změnu oprávnění pro soubory, které jsou určitého typu.
Syntaxe příkazu pro změnu oprávnění konkrétního typu souboru v adresáři je:
find [directory] -name "*.[filename_extension]" -exec chmod [privilege] {} \;
Chcete-li například vytvořit všechny .sh soubory v aktuálním adresáři spustitelný , použili byste:
find . -name "*.sh" -exec chmod +x {} \;