Zkratka pro změnit vlastnictví , Příkaz Chown je nástroj příkazového řádku, který se používá ke změně vlastnictví uživatele nebo skupiny souboru nebo adresáře a dokonce i odkazů. Filozofie Linuxu je taková, že každý soubor nebo adresář vlastní konkrétní uživatel nebo skupina s určitými přístupovými právy.
Na různých příkladech si vyzkoušíme a uvidíme různé případy použití příkazu chown. Příkaz Chown využívá poměrně jednoduchou a přímočarou syntaxi.
$ chown MOŽNOSTI UŽIVATEL:GROUP soubory
Pojďme si stručně přiblížit parametry:
Atribut USER odkazuje na uživatelské jméno uživatele, který bude soubor vlastnit. Můžete zadat buď uživatelské jméno, nebo UID ( Uživatelské ID). Mezitím GROUP volba označuje název nové skupiny, kterou soubor získá po spuštění příkazu. Možnost soubor představuje běžný soubor nebo adresář nebo dokonce symbolický odkaz. Toto jsou tři entity, jejichž oprávnění lze změnit.
Několik poznámek:
1) Pokud je zadána pouze možnost USER, vlastnictví souboru/adresáře se změní na vlastnictví zadaného uživatele, zatímco vlastnictví skupiny zůstane nezměněno. Zde je příklad:
$ chown john file1.txt
Ve výše uvedeném příkazu se změní uživatelské vlastnictví souboru file1.txt z aktuálního uživatele na uživatele john.
2) Pokud je za možností USER plná dvojtečka, tj. USER:a není zadán název skupiny, pak uživatel převezme vlastnictví souboru, ale skupinové vlastnictví souboru se přepne na přihlašovací skupinu uživatele. Například:
$ chown john: file1.txt
V tomto příkladu uživatel john převezme vlastnictví souboru file1.txt, ale skupinové vlastnictví souboru se změní na john's login group.
3) Pokud jsou zadány možnosti uživatele i skupiny oddělené dvojtečkou, tj. USER:GROUP – bez mezer – soubor převezme vlastnictví nového uživatele a skupiny, jak je uvedeno
$ chown john:john file1.txt
Ve výše uvedeném příkladu soubor přebírá vlastnictví uživatele a skupiny uživatele john.
4) Pokud je vynechána možnost USER a místo toho je před možností skupiny uvedena dvojtečka :GROUP, změní se pouze skupinové vlastnictví souboru.
Jak zobrazit oprávnění k souboru
Chcete-li zobrazit oprávnění k souboru, jednoduše použijte příkaz ls -l následovaný názvem souboru
$ ls -l název_souboru
Například:
$ ls -l file1.txt
Z výstupu můžeme vidět, že soubor je vlastněn uživatelem linuxtechi, který patří do skupiny linuxtechi ve 3. a 4. sloupci.
Jak změnit vlastníka souboru pomocí příkazu chown
Před změnou oprávnění vždy vyvolejte sudo, pokud nepracujete jako uživatel root. To vám dává zvýšená oprávnění ke změně vlastnictví uživatele a skupiny souboru.
Chcete-li změnit vlastnictví souboru, použijte syntaxi:
$ sudo chown uživatelské jméno souboru
Například,
$ sudo chown james file1.txt
Z výstupu můžete jasně vidět, že vlastnictví souboru se změnilo z linuxtechi na uživatele james.
Alternativně můžete místo použití uživatelského jména předat UID uživatele. Chcete-li získat UID, prohlédněte si soubor /etc/passwd.
$ cat /etc/passwd | grep username
Z příkladu níže vidíme, že UID uživatele linuxtechi je 1002
Chcete-li změnit vlastnictví souboru zpět na uživatele linuxtechi, provedeme příkaz:
$ sudo chown 1002 file1.txt
Jak změnit vlastníka skupiny pomocí příkazu chown
Jak již bylo zmíněno dříve, chcete-li změnit vlastníka skupiny souboru, vynechejte uživatele a jednoduše před název skupiny uveďte plnou dvojtečku.
$ sudo chown :skupinový soubor
Chcete-li například změnit vlastníka skupiny souboru file1.txt z linuxtechi na docker, provedli jsme příkaz:
$ sudo chown :docker file1.txt
Jak změnit vlastníka souboru i vlastníka skupiny souboru
Chcete-li změnit vlastníka i skupinu, do které soubor patří, zadejte možnosti uživatele i skupiny oddělené plnou dvojtečkou, jak je uvedeno v syntaxi níže. Ujistěte se, že mezi možnostmi a dvojtečkou nejsou žádné mezery.
$ sudo chown user:group filename
Například následující příkaz změní vlastnictví souboru file1.txt na uživatele james a group redis, jak bylo ověřeno pomocí příkazu ls.
$ sudo chown james:redis file1.txt
Jak rekurzivně změnit vlastnictví souboru
Když aplikujete oprávnění na adresáře, možná budete chtít aplikovat změny rekurzivně, tj. provést změny vlastnictví tak, aby sestoupily a použily se na soubory a podadresáře. Abyste toho dosáhli, použijte rekurzivní volbu -R nebo –rekurzivní direktivu.
$ sudo chown -R uživatel:adresář skupiny
Například příkaz níže přiřadí všechny soubory a složky ve vlastnictví adresáře /var/www skupině www-data.
$ sudo chown -R :www-data /var/www
Níže uvedený příklad přiděluje uživateli linuxtechi vlastnictví adresářových sestav spolu se všemi soubory a složkami v adresáři.
$ sudo chown -R linuxtechi reports
Jak změnit vlastnictví pomocí referenčního souboru
A konečně, existuje šikovný způsob, který můžete použít ke změně vlastnictví souboru, a to pomocí referenčního souboru. Pomocí příkazu chown můžete změnit uživatelské a skupinové vlastnictví souboru pomocí jiného souboru jako referenčního bodu.
Syntaxe je uvedena níže:
$ chown –reference=soubor ref_file
Předpokládejme, že chcete přiřadit uživatelské a skupinové vlastnictví souboru file1.txt jinému souboru file2.txt. jak byste na to šli? To je znázorněno v příkazu níže.
$ chown --reference=file1.txt file2.txt
Výše uvedený výstup potvrzuje, že soubor2.txt zdědí uživatelské a skupinové vlastnictví souboru1.txt. V příkazu je referenčním souborem soubor1.txt.
Závěr
Příkaz Chown je výkonný nástroj, který se používá pro správu vlastnictví souborů a adresářů. Pro další informace se podívejte na manuálové stránky chown.
$ man chown
Přečtěte si také :Linuxový příkaz Zip a rozbalení s příklady