chown
umožňuje změnit vlastnictví uživatele a/nebo skupiny daného souboru, adresáře nebo symbolického odkazu.
V Linuxu jsou všechny soubory spojeny s vlastníkem a skupinou a jsou jim přiřazena přístupová práva pro vlastníka souboru, členy skupiny a další.
V tomto tutoriálu vám ukážeme, jak používat chown
velení pomocí praktických příkladů.
Jak používat chown
#
Než se pustíte do toho, jak používat chown
příkaz, začněme zopakováním základní syntaxe.
chown
příkazové výrazy mají následující tvar:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
je uživatelské jméno nebo uživatelské ID (UID) nového vlastníka. GROUP
je název nové skupiny nebo ID skupiny (GID). FILE(s)
je název jednoho nebo více souborů, adresářů nebo odkazů. Číselná ID by měla mít předponu +
symbol.
USER
- Pokud je zadán pouze uživatel, stane se zadaný uživatel vlastníkem daných souborů, vlastnictví skupiny se nezmění.USER:
- Když za uživatelským jménem následuje dvojtečka:
a název skupiny není uveden, uživatel se stane vlastníkem souborů a vlastnictví skupiny souborů se změní na přihlašovací skupinu uživatele.USER:GROUP
- Pokud je zadán uživatel i skupina (bez mezery mezi nimi), změní se uživatelské vlastnictví souborů na daného uživatele a vlastnictví skupiny se změní na danou skupinu.:GROUP
- Pokud je vynechán uživatel a před skupinou je dvojtečka:
, na danou skupinu se změní pouze skupinové vlastnictví souborů.:
Pokud pouze dvojtečka:
je dáno, bez určení uživatele a skupiny se neprovede žádná změna.
Ve výchozím nastavení při úspěchu chown
neprodukuje žádný výstup a vrací nulu.
Použijte ls -l
příkaz ke zjištění, kdo vlastní soubor nebo do jaké skupiny soubor patří:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| |
| +-----------> Group
+-------------------> Owner
Normální uživatelé mohou změnit skupinu souboru pouze v případě, že vlastní soubor a pouze do skupiny, jejímž jsou členem. Administrativní uživatelé mohou změnit skupinové vlastnictví všech souborů.
Jak změnit vlastníka souboru #
Chcete-li změnit vlastníka souboru, použijte chown
příkaz následovaný uživatelským jménem nového vlastníka a cílovým souborem jako argument:
chown USER FILE
Například následující příkaz změní vlastnictví souboru s názvem file1
novému vlastníkovi s názvem linuxize
:
chown linuxize file1
Chcete-li změnit vlastnictví více souborů nebo adresářů, zadejte je jako seznam oddělený mezerami. Níže uvedený příkaz změní vlastnictví souboru s názvem file1
a adresář dir1
novému vlastníkovi s názvem linuxize
:
chown linuxize file1 dir1
Místo uživatelského jména lze použít číselné ID uživatele (UID). Následující příklad změní vlastnictví souboru s názvem file2
na nového vlastníka s UID 1000
:
chown 1000 file2
Pokud jako uživatelské jméno existuje číselný vlastník, bude vlastnictví převedeno na uživatelské jméno. Chcete-li se vyhnout této předponě ID s +
:
chown 1000 file2
Jak změnit vlastníka a skupinu souboru #
Chcete-li změnit vlastníka i skupinu souboru, použijte chown
příkaz následovaný novým vlastníkem a skupinou oddělenými dvojtečkou (:
) bez mezer a cílového souboru.
chown USER:GROUP FILE
Následující příkaz změní vlastnictví souboru s názvem file1
novému vlastníkovi s názvem linuxize
a skupina users
:
chown linuxize:users file1
Pokud za dvojtečkou vynecháte název skupiny (:
) skupina souboru se změní na zadanou uživatelskou přihlašovací skupinu:
chown linuxize: file1
Jak změnit skupinu souboru #
Chcete-li změnit pouze skupinu souboru, použijte chown
příkaz následovaný dvojtečkou (:
) a název nové skupiny (bez mezery mezi nimi) a cílový soubor jako argument:
chown :GROUP FILE
Následující příkaz změní vlastnící skupinu souboru s názvem file1
na www-data
:
chown :www-data file1
Dalším příkazem, který můžete použít ke změně skupinového vlastnictví souborů, je chgrp
.
Jak změnit vlastnictví symbolických odkazů #
Pokud není použita rekurzivní možnost, chown
příkaz změní skupinové vlastnictví souborů, na které symbolické odkazy ukazují, nikoli samotné symbolické odkazy.
Pokud se například pokusíte změnit vlastníka a skupinu symbolického odkazu symlink1
který ukazuje na /var/www/file1
, chown
změní vlastnictví souboru nebo adresáře, na který symbolický odkaz ukazuje:
chown www-data: symlink1
Je pravděpodobné, že namísto změny cílového vlastnictví se zobrazí chyba „nelze dereference ‚symlink1‘:Povolení odepřeno“.
K chybě dochází, protože ve výchozím nastavení jsou ve většině distribucí Linuxu symbolické odkazy chráněny a s cílovými soubory nelze pracovat. Tato možnost je specifikována v /proc/sys/fs/protected_symlinks
. 1
znamená povoleno a 0
zakázáno. Doporučujeme nevypínat ochranu symbolických odkazů.
Chcete-li změnit skupinové vlastnictví samotného symbolického odkazu, použijte -h
možnost:
chown -h www-data symlink1
Jak rekurzivně změnit vlastnictví souboru #
Chcete-li rekurzivně pracovat se všemi soubory a adresáři v daném adresáři, použijte -R
(--recursive
) možnost:
chown -R USER:GROUP DIRECTORY
Následující příklad změní vlastnictví všech souborů a podadresářů pod /var/www
adresář na nového vlastníka a skupinu s názvem www-data
:
chown -R www-data: /var/www
Pokud adresář obsahuje symbolické odkazy, předejte -h
možnost:
chown -hR www-data: /var/www
Další možnosti, které lze použít při rekurzivní změně vlastnictví adresáře, jsou -H
a -L
.
Pokud je argument předán do chown
příkaz je symbolický odkaz, který ukazuje na adresář, -H
volba způsobí, že ji příkaz projde. -L
říká chown
k procházení každého symbolického odkazu do adresáře, na který narazíte. Obvykle byste tyto možnosti neměli používat, protože byste mohli poškodit systém nebo vytvořit bezpečnostní riziko.
Použití referenčního souboru #
--reference=ref_file
možnost umožňuje změnit vlastnictví uživatele a skupiny daných souborů tak, aby byly stejné jako u zadaného referenčního souboru (ref_file
). Pokud je referenčním souborem symbolický odkaz chown
použije uživatele a skupinu cílového souboru.
chown --reference=REF_FILE FILE
Například následující příkaz přiřadí uživatelské a skupinové vlastnictví file1
do file2
chown --reference=file1 file2
Závěr č.
chown
je nástroj příkazového řádku systému Linux/UNIX pro změnu vlastnictví uživatele a/nebo skupiny souboru.
Chcete-li se dozvědět více o chown
navštivte manuálovou stránku chown nebo zadejte man chown
ve vašem terminálu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.