Jak v Bashi změnit vlastníka souboru pomocí chown
Pomocí chown změňte vlastníka a skupinu souboru či adresáře, ověřte výsledek a vyhněte se nebezpečným rekurzivním změnám.
Spustit interaktivní lekciPříkaz chown použijte, když soubor nebo adresář patří nesprávnému uživateli či skupině. Nejprve cíl prohlédněte, změňte jednu konkrétní cestu a výsledek ihned ověřte. Přepínač -R přidejte pouze tehdy, když mají stejné vlastnictví získat všechny položky pod daným adresářem. Základní zápis si můžete vyzkoušet v lekci Bash chown v izolovaném souborovém systému.
Zkontrolujte současného vlastníka a skupinu
Než něco změníte, prohlédněte si přesnou cestu:
ls -ld project
ls -l project/readme.txt
V dlouhém výpisu se vlastník a skupina zobrazují za poli s oprávněními a počtem odkazů. Ověřte, že project je zamýšlený adresář, a poté také to, že cílový účet a skupina už existují. Příkaz chown uživatele ani skupiny nevytváří.
Změňte vlastníka i skupinu
Běžný zápis uvádí před cestou dvojici vlastník:skupina:
sudo chown admin:developers project
Tím se admin stane vlastníkem a developers skupinou adresářové položky project. Obsah adresáře se rekurzivně nezmění. sudo použijte jen tehdy, když váš současný účet nemá potřebné oprávnění. Zvýšená oprávnění vás neochrání před překlepem ve jménu nebo cestě.
Výsledek ověřte:
ls -ld project
Chcete-li změnit pouze vlastníka, skupinu vynechte:
sudo chown admin project/readme.txt
Chcete-li pomocí chown změnit jen skupinu, ponechte vlastníka prázdného:
sudo chown :developers project/readme.txt
Pokud měníte pouze skupinové vlastnictví, bývá přehlednější samostatný průvodce příkazem chgrp.
Rekurzivní změnu vlastnictví posuzujte samostatně
Přepínač -R použije změnu na výchozí adresář i vše pod ním:
sudo chown -R admin:developers project
Před stisknutím Enteru potvrďte výchozí bod pomocí pwd a ls -ld project. Vyhněte se nevyhodnoceným proměnným, zástupným znakům a cestám zkopírovaným z nedůvěryhodné zprávy. Rekurzivní změnu vlastnictví nikdy nezkoušejte z /, nad celým domovským adresářem ani na produkčně používaném připojeném svazku.
Poté ověřte adresář i několik typických souborů:
ls -ld project
ls -l project/readme.txt
Strom může záměrně obsahovat soubory vlastněné různými servisními účty. Nahrazení všech jediným vlastníkem může poškodit nasazení, databáze, kontejnery nebo sdílené adresáře, i když samotný příkaz proběhne úspěšně.
Co příkaz chown neopraví
Vlastnictví a oprávnění jsou dvě odlišné věci. chown mění uživatele a skupinu, ke kterým se vztahují bity oprávnění; chmod mění samotné bity. Pokud je vlastník správný, ale přístup je stále odepřen, zkontrolujte režim místo opakované změny vlastnictví.
Výsledek mohou ovlivnit také symbolické odkazy, síťové svazky, kontejnery a spravované souborové systémy. Než rekurzivně změníte strom obsahující odkazy nebo přípojné body, přečtěte si místní stránku man chown. Pokud souborový systém operaci odmítne, zjistěte, jaký model vlastnictví používá, místo opakovaného přidávání širších oprávnění.
O číselných režimech přístupu pokračujte článkem jak fungují čísla chmod. Úplnou syntaxi vlastnictví a možnosti průchodu popisuje dokumentace Coreutils pro chown.
Reference
Tyto odkazy na dokumentaci poskytují spolehlivé informace o příkazech použitých v tomto článku.
Další
Pochopte číselná oprávnění chmod, vyberte bezpečný režim pro soubory i adresáře a ověřte výsledek bez riskantních změn.