GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit oprávnění souborů rekurzivně pomocí chmod v Linuxu

Ú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 {} \;

Linux
  1. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. Jak zobrazit nebo změnit ACL v souborech Linux

  1. Přečtěte si, jak změnit oprávnění pro soubory a složky

  2. Oprávnění souborů v Linuxu s příkladem

  3. Jak používat příkaz chmod (Change Mode) v Linuxu

  1. Oprávnění pro Linux:Úvod do chmod

  2. Linux chmod and chown – Jak změnit oprávnění a vlastnictví souborů v Linuxu

  3. Jak změnit oprávnění pro jeden soubor?