edison23

Zápisky šíleného jazykového editora

Práva zápisu do nového diskového oddílu ext4 na UNIXu

Datum: 2014-12-21
Kategorie: Návody Software Unix CS

Pokud si vytvoříte při instalaci např. Ubuntu nové diskové oddíly s formátem ext4, zjistíte, že do nich jako normální uživatel (administrátor) svého počítače nemáte právo zapisovat. Já jsem na to přišel přes pro mě dost záhadnout hlášku rsyncu:

rsync: mkstemp  failed: permission denied (13)

Vlastníkem takových oddílů je totiž root a nikoliv vy (hádám, že to je způsobené tím, že váš účet v době vytváření vůbec neexistoval). Předkládám tedy návod, jak zajistit, abyste mohli do svých oddílů zapisovat. Čerpá z anglického originálu na It’s F.O.S.S.. Odzkoušeno na Ubuntu 14.04.

Pokud máte oddíly inteligentně pojmenované (tedy na nějakém příčetném mount pointu (např. /datahdd nebo /media/anicka/data)), můžete se hned pustit do měnění práv. Pokud ne, vizte nejdříve návod níže.

Nejdříve nastavíme vlastnictví oddílů své skupině, v našem případě skupině uživatele _anicka_, a bude se jednat o oddil /datahdd.

sudo chgrp anicka /datahdd

V druhém kroku přiřadíme vlastnicví oddílu nejen své skupině, ale také sobě (ukázalo se být nutné na Ubuntu 18.04):

sudo chown anicka /datahdd

V posledním kroku nastavíme svému oddílu právo na čtení složky (právo vidět obsah složky, tedy výpis souborů, ale nikoliv obsah souborů v ní), právo zápisu (právo přidávat a mazat soubory ve složce) a právo spouštení (právo číst metadata souborů typu velikost, datum poslední modifikace etc. a obsah souborů v ní) pro skupinu, do níž patří vlastník:

sudo chmod g+rwx /datahdd

Toť vše, nyní by uživatel _anicka_ měl být schopen číst z, zapisovat do a spouštět v mount pointu /datahdd. Totéž samozřejmě můžete provést s libovolnou složkou, ale doporučuji to dělat jen tehdy, máte-li k tomu důvod.

Poznámka: písmenné zápisy práv jsou podobné jako číselné, takže místo g+wx můžete použít 755. Komu ale ta práva přiřazujete se specifikuje jinak, takže chmod 755 /datahdd znamená, že sobě dáte rwx a skupině a ostatním na uživatelům rx (závisí na pozici, první jste vy, druhá skupina, třetí zbytek).

Přístupová práva na UNIXu

Jak zjistit, kde je oddíl namountovaný

Pokud nemáte oddíly inteligentně namountované, budete muset nejdříve zjistit UUID oddílu, který si chcete přivlastnit, pak zjistit, kde je namountovaný do systému a podle toho teprve měnit práva k němu. Podívejte se tedy do /media/<uziv_jmeno> (kde <uziv_jmeno> je název vašeho uživatelského účtu) a zjistěte, jestli jste schopni svůj oddíl najít. Pokud ne, vypište si všechny disky/oddíly připojené k systému:

sudo fdisk -l

Pokud máte GPT, nejspíš se nic nedozvíte a budete muset použít lshw pro výpis technického vybavení počítače.

Výpis technického vybavení počítače toho vypisuje hrozný kotel, takže se tím prostě budete muset probrat a hledat, co by tak mohl být váš oddíl. Obecně vzato je rozumné hledat podle velikosti, když najdete něco, co by odpovídalo velikostí tomu, co hledáte, podívejte se na logical name (např. /media/edison23/FC30-3DA9) a zkuste si udělat výpis daného mount pointu (např. ls /media/edison23/FC30-3DA9). Jakmile objevíte ten správný mount point, můžete se vydat měnit práva.

Snímek obrazovky s částí výpisu příkazu `lshw`

Objevíte-li nějaké nepřesnosti, nebo dokonce kardinální hovadiny, prosím, sdělte mi to, děkuji.