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

V operačních systémech Linux je každá složka a soubor spojen s konkrétním uživatelem. Vlastnictví těchto prvků lze modifikovat pomocí příkazu chown. V tomto článku si ukážeme, jak na to.

Uživatel a skupina jako vlastníci dat

Linux je navržen jako systém pro více uživatelů. To znamená, že umožňuje vytvářet různé uživatelské profily a poskytovat přístup k počítači každému z nich. Navíc, jeden počítač může být používán několika uživateli současně.

Pro sledování, který soubor patří kterému uživateli, a pro zajištění bezpečnosti, Linux používá koncept vlastnictví. Každý soubor má svého vlastníka (uživatele) a je přiřazen ke skupině.

Při vytvoření souboru se jeho vlastníkem stává uživatel, který ho vytvořil. Skupina, do které soubor patří, je aktuální skupina tohoto uživatele. Uživatelé i skupiny mají jména a číselné identifikátory, známé jako UID (User ID) a GID (Group ID).

Pokud vytvoříte soubor, je automaticky ve vašem vlastnictví a patří do vaší aktuální skupiny. Obvykle je to skupina, do které jste přihlášeni. Standardně se jedná o skupinu, která má stejné jméno jako vaše uživatelské jméno a vznikla při vytváření vašeho uživatelského účtu.

Příkaz chown umožňuje změnit vlastnictví souboru. Můžete tak nastavit nového vlastníka, novou skupinu, nebo obojí současně. Vlastník souboru má možnost změnit skupinu, ale pouze administrátor (root) může změnit vlastníka, protože to zahrnuje přenos vlastnictví k jinému uživateli. Bez administrátorských práv nemůžete donutit jiného uživatele, aby nevědomky převzal vlastnictví souboru.

Kdy je vhodné měnit vlastnictví?

Existuje mnoho situací, kdy je změna vlastnictví souborů užitečná:

  • Při přenosu souborů mezi různými systémy Linux nebo Unix je nutné změnit vlastníky na nové uživatele a skupiny na cílovém počítači.
  • Pokud zaměstnanec opouští organizaci, je nutné převést jeho soubory na jiného pracovníka.
  • Při vytváření skriptu, který má používat konkrétní uživatel.
  • Pokud je soubor nebo adresář vytvořen pod účtem root, ale má být přístupný pro specifického uživatele.

Jak zjistit informace o skupinách, UID a GID

Pro zobrazení seznamu skupin, do kterých patříte, použijte příkaz groups:

groups

Pro zobrazení seznamu skupin, jejich číselných identifikátorů a vašich UID a GID použijte příkaz id:

id

Příkaz id lze upřesnit o další parametry:

  • -u: Zobrazí vaše UID.
  • -g: Zobrazí vaše aktuální GID.
  • -nu: Zobrazí vaše uživatelské jméno.
  • -ng: Zobrazí název vaší aktuální skupiny.
id -u
id -g
id -nu
id -ng

Zobrazení vlastníků souborů a skupin

K zobrazení vlastníků souborů a složek slouží příkaz ls s parametrem -l (dlouhý výpis):

ls -l

V tomto výpisu se jméno „dave“ objevuje dvakrát. První „dave“ vlevo označuje vlastníka souboru, zatímco druhé „dave“ vpravo identifikuje skupinu, do které soubor patří.

Při vytváření nového uživatele v Linuxu je tento uživatel automaticky přidán do soukromé skupiny, která má stejné jméno jako jeho uživatelské jméno. Je jediným členem této skupiny.

Následující výpis ukazuje, že soubor je ve vlastnictví uživatele „mary“ a patří do její soukromé skupiny „mary“.

ls -l

V tomto případě je soubor vlastněný uživatelem „oscar“, ale patří do skupiny „researchlab“. To znamená, že i ostatní členové skupiny „researchlab“ mohou k tomuto souboru přistupovat podle nastavených oprávnění.

Změna vlastníka souboru

Zde si ukážeme několik příkladů. Následující příkaz změní vlastníka souboru „while.c“ na uživatele „mary“.

sudo chown mary while.c

Po změně vlastnictví, můžeme použít ls pro ověření změn.

ls -l while.c

Pomocí chown můžeme změnit vlastnictví více souborů najednou:

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

Tento příkaz změní vlastníka všech tří uvedených souborů.

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

K výběru skupin souborů lze použít zástupné znaky. Následující příkaz změní vlastníka všech souborů začínajících na písmeno „c“.

sudo chown mary c*.*

Nyní jsou vlastníkem všech souborů s tímto vzorem „mary“. Všimněte si, že vlastnictví skupiny se nezměnilo.

ls -l mary c*.*

Nyní změníme vlastnictví adresáře. Jednoduše předáme název adresáře příkazu chown místo názvu souboru:

sudo chown mary ./archive/

Pro ověření vlastností adresáře použijeme ls s parametrem -d (adresář). Zobrazí se informace o samotném adresáři, ne o jeho obsahu.

ls -l -d ./archive/

Pokud chceme změnit vlastnictví všech souborů v adresáři, použijeme parametr -R (rekurzivní). Tento příkaz změní vlastníka všech souborů v adresáři „archive“.

sudo chown -R mary ./archive/

Nyní se podíváme na obsah adresáře „archive“.

ls -l ./archive/

Jak se dalo očekávat, všechny soubory nyní patří uživateli „mary“.

Změna vlastnictví skupiny

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

Pro změnu vlastníka i skupiny najednou, se nové jméno vlastníka a název nové skupiny oddělují dvojtečkou („:“). Skupina již musí existovat.

sudo chown mary:researchlab charm.c

Vlastník i skupina 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, je zadat dvojtečku a vynechat název skupiny:

sudo chown mary: caps.c

ls -l caps.c

Vlastník i skupina byly změněny na „mary“.

Pokud chcete změnit pouze skupinu, uveďte dvojtečku před jejím názvem a vynechejte jméno uživatele. Vlastník souboru zůstane nezměněn.

sudo chown :researchlab at.c

ls -l at.c

Skupina byla změněna, ale vlastník zůstal stejný.

Použití UID a GID s příkazem chown

Příkaz chown umožňuje používat číselné hodnoty UID a GID. Následující příkaz nastaví vlastníka a skupinu na „mary“ s UID a GID 1001.

sudo chown 1001:1001 at.c

ls -l at.c

Vlastnictví jako základní bezpečnostní prvek

V Linuxu je vlastnictví klíčovou součástí zabezpečení souborů, společně s oprávněními k souborům. Používejte příkazy chown a chmod pro ochranu vašich dat v systému.