Jak používat příkaz chown v systému Linux

Všechny soubory a adresáře v systémech Linux patří někomu. Jejich vlastnictví můžete změnit příkazem chown. Ukážeme vám jak.

Každý soubor patří uživateli a skupině

Linux je systém pro více uživatelů. Operační systém umožňuje definovat více uživatelských účtů a přihlásit se k počítači každému platnému uživateli. Navíc může jeden počítač používat více uživatelů současně.

K udržení záznamu o tom, které soubory patří kterému uživateli a k ​​vynucení určité bezpečnosti, používá Linux koncept vlastnictví. Každý soubor patří vlastníkovi – uživateli – a skupině.

Když je soubor vytvořen, jeho vlastníkem je uživatel, který jej vytvořil. Skupina, do které soubor patří – skupina „vlastnící“ – je aktuální skupinou uživatele. Uživatelé a skupiny mají jména a také číselné identity, nazývané uživatelský (nebo jedinečný) identifikátor (UID) a identifikátor skupiny (GID).

Když vytvoříte soubor, je ve vašem vlastnictví a patří do vaší aktuální skupiny. Obvykle je to skupina, do které jste se přihlásili. Ve výchozím nastavení se jedná o skupinu, která sdílí stejné jméno jako vaše uživatelské jméno a byla vytvořena, když jste byli vytvořeni jako uživatel v systému.

Pomocí příkazu chown můžete změnit hodnoty vlastnictví na něco jiného. Můžete nastavit nového vlastníka, novou skupinu nebo nového vlastníka a novou skupinu současně. Vlastník souboru může změnit vlastnictví skupiny, ale pouze root může změnit vlastnictví uživatele, protože to zahrnuje jiného uživatele. Bez oprávnění root nemůžete přimět jiného uživatele v systému, aby nevědomky „adoptoval“ soubor.

Proč byste chtěli změnit vlastnictví?

Zde je několik příkladů situací, kdy byste to mohli chtít udělat:

Pokud přenášíte soubory mezi různými operačními systémy Linux nebo Unix, budete muset změnit vlastníky uživatele a skupiny na nové vlastníky uživatele a skupiny účtu, pod kterým chcete soubory používat na novém počítači se systémem Linux.
Uživatel může opustit vaši organizaci a za všechny jeho soubory bude odpovědný jiný zaměstnanec. Budete muset změnit vlastníka a vlastníka skupiny na zaměstnance, který je nyní odpovědný za tyto soubory.
Můžete vytvořit skript, který bude používat konkrétní uživatel.
Můžete vytvořit soubor nebo adresář přihlášený jako root, ale chcete, aby byl přístupný konkrétnímu uživateli.

Zobrazení vašich skupin, UID a GID

Na seznam skupin se nacházíte, můžete použít příkaz groups.

groups

Chcete-li získat seznam skupin, jejich číselná ID, a vaše UID a GID, použijte příkaz id:

id

Pro upřesnění výstupu můžete použít některé volby s ID.

-u: Uveďte své UID.
-g: Uveďte svůj efektivní (aktuální) GID.
-nu: Vypíše své uživatelské jméno.
-ng: Vypíše název vaší aktuální skupiny.

id -u
id -g
id -nu
id -ng

Zobrazení uživatelského a skupinového vlastnictví souboru

Chcete-li zobrazit vlastníky souboru nebo adresáře, použijte volbu -l (dlouhý výpis) s ls.

ls -l

Vidíme, že jméno dave se ve výpisu objevuje dvakrát. Vzhled zcela vlevo nám říká, že vlastníkem souboru je uživatel jménem dave. Dave úplně vpravo nám říká, že soubor patří do skupiny, která se také nazývá dave.

Ve výchozím nastavení, když je vytvořen uživatel Linuxu, je přidán do soukromé skupiny pojmenované podle jeho uživatelského jména. Jsou jediným členem této skupiny.

Tento spustitelný soubor je ve vlastnictví uživatele mary a skupina, do které soubor patří, je maryina soukromá skupina.

ls -l

Tento soubor je ve vlastnictví uživatele oscar, ale skupina, do které soubor patří, se nazývá researchlab. To znamená, že ostatní členové skupiny researchlab mohou k tomuto souboru přistupovat podle oprávnění k souboru, která byla pro členy této skupiny nastavena.

Změna vlastnictví uživatele

Proberme několik příkladů. Tento příkaz změní uživatelské vlastnictví souboru while.c na uživatele mary.

sudo chown mary while.c

Můžeme použít ls k zobrazení změn vlastností souboru.

ls -l while.c

Pomocí chown můžete změnit vlastnictví několika souborů najednou.

sudo chown mary getval.c global.c goto.c

Tím se změní uživatelské vlastnictví všech tří souborů.

ls -l getval.c global.c goto.c

K výběru skupin souborů můžete použít zástupné znaky. Tento příkaz změní uživatelské vlastnictví všech souborů začínajících písmenem „c“.

sudo chown mary c*.*

Všechny soubory nyní budou mít jako vlastníka Mary. Všimněte si, že žádné z vlastnictví skupiny nebylo změněno.

ls -l mary c*.*

Pojďme změnit vlastnictví adresáře. Jednoduše předáme název adresáře chown místo názvu souboru.

sudo chown mary ./archive/

Pro kontrolu vlastnických vlastností adresáře používáme ls, ale také k němu použijte volbu -d (adresář). Zde jsou uvedeny vlastnosti adresáře, nikoli soubory v něm.

ls -l -d ./archive/

Chcete-li změnit vlastnictví všech souborů v adresáři, můžete použít volbu -R (rekurzivní). Tato možnost změní uživatelské vlastnictví všech souborů v archivní složce.

sudo chown -R mary ./archive/

Nyní se podíváme na soubory v adresáři archivu.

ls -l ./archive/

Jak se dalo očekávat, všechny soubory nyní patří Mary.

Změna vlastnictví skupiny

Vlastnictví skupiny lze změnit různými způsoby.

Chcete-li změnit vlastnictví skupiny současně se změnou vlastnictví uživatele, předejte jméno nového vlastníka a název nové skupiny s dvojtečkou „:“, která je odděluje. Skupina již musí existovat.

sudo chown mary:researchlab charm.c

Vlastník uživatele a skupina, do které soubor patří, byly změněny.

ls -l charm.c

Zkrácený způsob, jak změnit vlastnictví skupiny na aktuální skupinu nového vlastníka, stačí zadat dvojtečku a vynechat název skupiny.

sudo chown mary: caps.c

ls -l caps.c

Vlastnictví uživatele i vlastnictví skupiny bylo změněno na mary.

Chcete-li změnit pouze vlastnictví skupiny, uveďte před něj dvojtečku a vynechejte uživatelské jméno. Vlastník uživatele nebude změněn.

sudo chown :researchlab at.c

ls -l at.c

Vlastnictví skupiny bylo změněno, ale vlastnictví uživatele zůstává stejné.

Použití Chown s hodnotami UID a GID

S příkazem chown můžete použít číselné hodnoty UID a GID. Tento příkaz nastaví vlastnictví uživatele a skupiny na mary.

sudo chown 1001:1001 at.c

ls -l at.c

Vlastnictví je devět desetin zákona

Nebo tak říkají. Ale v Linuxu je vlastnictví velkou součástí zabezpečení souborů, přičemž oprávnění k souborům poskytují zbytek. Použijte příkazy chown a chmod k zabezpečení přístupu k souborům ve vašem systému.