abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:00 | Nová verze

    Byla vydána (Mastodon, 𝕏) nová stabilní verze 2.10.38 svobodné aplikace pro úpravu a vytváření rastrové grafiky GIMP (GNU Image Manipulation Program). Přehled novinek v oznámení o vydání a v souboru NEWS na GitLabu. Nový GIMP je již k dispozici také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    dnes 00:22 | Komunita

    Google zveřejnil seznam 1220 projektů od 195 organizací (Debian, GNU, openSUSE, Linux Foundation, Haiku, Python, …) přijatých do letošního, již dvacátého, Google Summer of Code.

    Ladislav Hagara | Komentářů: 0
    včera 22:22 | IT novinky

    Na základě DMCA požadavku bylo na konci dubna z GitHubu odstraněno 8535 repozitářů se zdrojovými kódy open source emulátoru přenosné herní konzole Nintendo Switch yuzu.

    Ladislav Hagara | Komentářů: 2
    včera 00:33 | Nová verze

    Webový prohlížeč Dillo (Wikipedie) byl vydán ve verzi 3.1.0. Po devíti letech od vydání předchozí verze 3.0.5. Doména dillo.org již nepatří vývojářům Dilla.

    Ladislav Hagara | Komentářů: 0
    4.5. 15:00 | Komunita

    O víkendu probíhá v Bostonu, a také virtuálně, konference LibrePlanet 2024 organizovaná nadací Free Software Foundation (FSF).

    Ladislav Hagara | Komentářů: 0
    4.5. 13:22 | Nová verze

    Nová vývojová verze Wine 9.8 řeší mimo jiné chybu #3689 při instalaci Microsoft Office 97 nahlášenou v roce 2005.

    Ladislav Hagara | Komentářů: 0
    3.5. 13:11 | Nová verze

    Coppwr, tj. GUI nástroj pro nízkoúrovňové ovládání PipeWire, byl vydán v nové verzi 1.6.0. Zdrojové kódy jsou k dispozici na GitHubu. Instalovat lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    2.5. 22:33 | Nová verze

    Byla vydána dubnová aktualizace aneb nová verze 1.89 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Vypíchnout lze, že v terminálu lze nově povolit vkládání kopírovaného textu stisknutím středního tlačítka myši. Ve verzi 1.89 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 29
    2.5. 21:22 | Nová verze

    Proton, tj. fork Wine integrovaný v Steam Play a umožňující v Linuxu přímo ze Steamu hrát hry určené pouze pro Windows, byl vydán ve verzi 9.0-1 (𝕏). Přehled novinek se seznamem nově podporovaných her na GitHubu. Aktuální přehled her pro Windows běžících díky Protonu také na Linuxu na stránkách ProtonDB.

    Ladislav Hagara | Komentářů: 2
    2.5. 19:33 | Nová verze

    Byla vydána verze 1.78.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání na GitHubu. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (64%)
     (9%)
     (15%)
     (12%)
    Celkem 101 hlasů
     Komentářů: 8, poslední 4.5. 08:25
    Rozcestník

    Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)

    30. 11. 2009 | David Watzke | Návody | 84429×

    Tento díl je o přístupových právech v Unixu a o nástrojích pro manipulaci s nimi (chmod, chown, chgrp).

    Obsah

    Jelikož jsou unixové systémy víceuživatelské, je zde nutnost nějakého systému přístupových práv, aby uživatelé nemohli přistupovat k citlivým datům jiných uživatelů, páchat škodu na systému a tak podobně. Standard POSIX definuje systém oprávnění, který používají všechny unixové systémy.

    Základní unixová přístupová práva

    link

    Každý soubor či adresář má svá základní oprávnění. To zahrnuje vlastníka (UID) a skupinu (GID), a dále oprávnění ke čtení (read), zápisu (write) a spuštění (execute) pro vlastníka (user), skupinu (group) a ostatní uživatele (others). Význam tučných písmen je dobré si zapamatovat, nejen proto, že je budeme používat dále v článku.

    PrávoVýznam u souboruVýznam u adresáře
    r Čtení souboru. Čtení názvů obsažených položek.
    w Zápis do souboru. Vytváření souborů a adresářů.
    x Spuštění souboru. Vstup do adresáře.

    Samotný popis je pro nezasvěceného patrně složité pochopit, a proto to předvedu na ukázce. Již ve druhém díle jsme si představili příkaz ls, který nám teď pomůže s vypsáním a pochopením práv. Vypíšeme si adresář s různými soubory, které mají různá práva.

    $ ls -lF --color=auto
    brw-rw---- 1 root root    7, 0 2009-11-08 14:41 blokove_zarizeni
    -rw------- 1 dave home      16 2009-11-08 14:34 muj_tajny_soubor.txt
    prw-r--r-- 1 dave home       0 2009-11-08 14:43 pojmenovana_roura|
    drwxr-xr-x 1 dave home       0 2009-11-08 14:37 prazdny_adresar/
    -rwxr-xr-x 1 dave home 5558272 2009-11-08 14:37 spustitelny_soubor*
    lrwxrwxrwx 1 dave home      20 2009-11-08 14:35 symlink_na_muj_tajny_soubor -> muj_tajny_soubor.txt
    srwxr-xr-x 1 dave home       0 2009-11-08 17:34 unixovy_socket=
    crw-rw-r-- 1 root root    5, 2 2009-11-08 14:41 znakove_zarizeni
    

    Zajímají nás teď především první tři sloupce. V prvním sloupci jsou vypsána oprávnění. První znak udává typ souboru (* to si vysvětlíme později, s právy to nesouvisí). Další tři znaky znázorňují oprávnění pro vlastníka, následující tři pro skupinu a poslední tři pro ostatní uživatele. Ve druhém sloupci je uvedeno jméno vlastníka a ve třetím potom název skupiny.

    Co vlastně jednotlivé znaky u oprávnění znamenají, vysvětlím třeba na adresáři nazvaném prazdny_adresar. Když ignorujeme první znak, máme rwxr-xr-x. To si můžeme představit rozdělené po třech znacích jako rwx,r-x,r-x, tedy vlastník,skupina,ostatní. Znaky r, w, x mají již popsaný význam a spojovník (-) znamená, že dané právo adresář nemá. Vlastník může s adresářem manipulovat, jak chce (rwx), zatímco skupina a ostatní do něj mohou jen vstoupit a vypsat si jeho obsah (r-x).

    PrávoHodnota
    r-- 4
    -w- 2
    --x 1

    Další důležitá věc je vyjádření práv v osmičkové číselné soustavě. Vizte tabulku. Například rw- lze zapsat jako 6, protože jednotlivá čísla se sčítají. Z toho vyplývá, že 3 je -wx, 5 je r-x a 7 je rwx.

    Základní oprávnění souboru či adresáře lze tedy vyjádřit trojciferným číslem, přičemž první číslo udává práva vlastníka, druhé skupiny a třetí ostatních uživatelů. Například pro spustitelné soubory se často používá 755, tedy rwxr-xr-x – vlastník má neomezená práva a ostatní mohou soubor jen číst nebo spustit.

    Je důležité uvědomit si, že vlastník své soubory může smazat, i když k nim nemá právo zápisu (w). Třeba příkaz rm se sice standardně při pokusu o smazání zeptá, nicméně lze to a jiné programy se ptát nemusí. Další výjimka je ta, že superuživatel (root) má ke všem souborům právo minimálně rw- (6), a to i v případě, kdy logicky spadá do skupiny s právy --- (0).

    Tolik tedy k právům. Co se týče příkazu ls a záhadného prvního písmena v prvním sloupci na začátku každého řádku jeho výpisu (*), jednotlivé znaky mají následující význam:

    ZnakVýznamČeho je znak zkratkou
    - obyčejný soubor -
    b soubor blokového zařízení block device
    c soubor znakového zařízení character device
    d adresář directory
    l symbolický odkaz symbolic link
    p pojmenovaná roura named pipe
    s unixový socket unix socket

    chmod

    link

    Program chmod (zkratka angl. change mode, tedy změnit práva) slouží ke změně oprávnění souborů a adresářů.

    # nastaví práva souboru "skript.sh" na 755 (rwxr-xr-x)
    chmod 755 skript.sh
    

    Při vysvětlování práv výše jsem psal, že je dobré pamatovat si tučné zkratky, tak si v případě potřeby osvěžte, co znamená user, group a others. Jiný způsob, jak u souboru změnit práva, totiž využívá právě těchto zkratek a kombinace písmen r, w, x. Následuje ukázka, na které tento způsob předvedu.

    chmod u+x soubor.run
    

    Písmeno u signalizuje, že měnit se budou práva vlastníka. Znak + znamená, že práva se budou přidávat (- práva odebírá a = přiřazuje). Další znaky (v tomto případě jen x) symbolizují práva, která se budou měnit. Příkaz tedy přidává vlastníkovi právo ke spuštění souboru s názvem soubor.run.

    # nastaví skupině rwx (7) pro „soubor.txt“
    chmod g+rwx soubor.txt
    
    # pokud měl soubor práva 777, po tomto příkazu budou 640
    chmod u-x,g-wx,o-rwx "soubor s mezerami v nazvu"
    
    # nastaví práva 764 souboru „filename.ext“
    chmod u=rwx,g=rw,o=r filename.ext
    

    Jediným standardizovaným přepínačem příkazu chmod je -R, který slouží k rekurzivní změně práv.

    # nastaví adresáři „adresar“ a veškerému jeho obsahu práva 755
    chmod -R 755 adresar/
    
    # odebere vlastnící skupině právo k zápisu do adresáře „x“ a jeho obsahu
    chmod -R g-w "x"
    

    Zde se hodí upozornit, že chmod s přepínačem -R dovede (především spuštěný pod rootem) velice snadno znehodnotit systém, a to takovým způsobem, že je pak podstatně jednodušší systém smazat a nainstalovat jej znova (či v lepším případě obnovit jej ze zálohy), než se pokoušet katastrofu napravit. Pozor si dávejte zvlášť při zadávání absolutních cest, protože největší škodu by příkaz napáchal logicky tehdy, dostal-li by kořenový adresář (/) jako argument.

    GNU verze příkazu má oproti standardu navíc několik dalších praktických přepínačů. Dva ovlivňující výpis programu:

    # -v vypíše informace o každém zpracovaném souboru
     chmod -v 755 a b c
    mode of `a' changed to 0755 (rwxr-xr-x)
    mode of `b' changed to 0755 (rwxr-xr-x)
    mode of `c' changed to 0755 (rwxr-xr-x)
    
    # -c je jako -v, ale vypisuje info jen tehdy, změní-li se práva a
    # následující příkaz tedy nevypíše nic (práva všech souborů již jsou 755)
    chmod -c 755 a b c
    

    Dále je zde přepínač --reference, díky kterému můžeme místo konkrétních práv zadat cestu k souboru, jehož práva budou použita

    # nastaví adresáři „dir“ práva kořenového adresáře
    chmod --reference=/ "dir"
    

    Přepínač --preserve-root nedovolí spustit příkaz v rekurzivním režimu na kořenový adresář. Pozor, na rozdíl např. od rm je u chmodu výchozí chování takové, jako by byl zadán přepínač --no-preserve-root.


    chown

    link

    Příkaz chown slouží ke změně vlastníka a skupiny souborů a adresářů. Název je zkratkou anglického change owner, tedy změnit vlastníka.

    # změní vlastníka souboru „soubor.txt“ na „jmeno_uzivatele“
    chown jmeno_uzivatele soubor.txt
    
    # změní vlastníka souboru „soubor.txt“ na „dave“ a skupinu na „home“,
    # oddělovač vlastníka a skupiny může být znak : nebo .
    chown dave:home "soubor.txt"
    

    Místo jména vlastníka a skupiny lze zadat také číslo vlastníka (UID) či skupiny (GID).

    Existují ještě další dvě zvláštní použití.

    # změní skupinu souboru „soubor.txt“ na „www“
    chown :www soubor.txt
    
    # změní vlastníka souboru „x“ na "admin" a
    # změní skupinu na implicitní skupinu uživatele „admin“
    chown admin: x
    
    # toto nefunguje, protože tento formát zápisu je platný
    # jen tehdy, když zadáte jméno uživatele (a ne UID)
    chown 1000: x
    chown: invalid spec: `1000:'
    

    Co se týče přepínačů, je na tom chown podobně jako výše popisovaný chmod, tedy -R je standardní přepínač aktivující rekurzivní režim a společná GNU rozšíření jsou také stejná. Příkaz chown má ale ještě další standardní i GNU přepínače.

    # nastaví adresářům „a“, „b“, „c“ a jejich obsahu
    # vlastníka „dave“ a skupinu „home“ a navíc vypíše
    # informaci o každém změněném souboru či adresáři
    chown -c -R dave:home a b c
    

    Standardní přepínač -h zakáže následování symbolických odkazů (symlinků) a mění přímo jejich vlastnictví (na systémech, kde to je podporováno – obvykle to smí provádět pouze root). Dále jsou zde standardní přepínače ovlivňující chování rekurzivního režimu (-R), a těmi jsou -H, -L-P. Přepínač -H způsobí následování symlinku zadaného na příkazovém řádku. Je-li zadán přepínač -L a program narazí na symlink odkazující na adresář, spustí rekurzi na odkazovaný adresář. Přepínač -P neprochází žádné symlinky. Standard neudává, které chování se má použít jako výchozí, ale GNU používá -P.

    Užitečný při rekurzivní změně vlastnictví může být také GNU přepínač --from, jemuž jako argument zadáte vlastníka a skupinu a chown pak mění vlastnictví jen u těch souborů, které odpovídají hodnotám zadaným přepínači --from.

    # rekurzivně změní vlastnictví všech položek v adresáři „/home/petr“,
    # které mají vlastníka „dave“ a skupinu „home“ na vlastníka „petr“ a skupinu „users“
    chown -R --from=dave:home petr.users /home/petr
    
    # rekurzivně změní vlastnictví všech položek v adresáři „/home/dave“,
    # které mají vlastníka „dave“ na „petr“ s jeho implicitní skupinou
    chown -R --from=dave petr: /home/petr/docs
    

    chgrp

    link

    Příkaz chgrp slouží ke změně vlastnické skupiny souborů a adresářů. Název vychází z anglického výrazu change groupzměnit skupinu.

    # nastaví souboru „x“ skupinu „home“
    chgrp home x
    # téhož lze docílit pomocí:
    chown :home x
    

    Program má (až na absenci --from) stejné standardní i GNU přepínače jako výše popisovaný chown.

    # změní skupinu aktuálního adresáře a jeho obsahu na „users“
    chgrp -R users .
    
    # totéž jako předchozí, ale navíc informuje o provedených změnách
    chgrp -cR users .
    
           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    brk avatar 30.11.2009 06:26 brk | skóre: 29 | blog: broukoviny
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Pěkný stručně a jasně popsaný úvod do problematiky práv. Jen je škoda, že nešel o chlup víc do hloubky. Třeba nezahrnuje dědičnost, např. viz dotaz zde z poradny: Linux, práva, dědičnost.
    USE="-qt -kde"
    30.11.2009 08:19 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Jo, já bych jedním šmahem vzal minimálně setuid/gid/sticky, ne-li ACL.
    In Ada the typical infinite loop would normally be terminated by detonation.
    30.11.2009 16:36 rastos | skóre: 62 | blog: rastos
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    A pridať chattr. A tiež odstavec o tom, čo z toho a ako funguje na moderných systémoch oproti systémom starším (resp. unixovým, ale nie linuxovým).

    Vždy sa dá ísť do ďalších a ďalších podrobností (napr. fungovanie na rôznych filesystémoch).
    30.11.2009 17:44 Robert Krátký | skóre: 94 | blog: Robertův bloček
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Pánové, nic vám nebrání přidat ještě jeden podrobnější díl o právech. Rád jej vydám. Jsem však rád, že tento článek nezabíhal do přílišných detailů, aby to zůstalo stručné a stravitelné i pro neznalé.
    Fill avatar 30.11.2009 07:51 Fill | skóre: 19 | blog: Fill | Třebíč
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Ještě bych zmínil u chmod velice užitečný přepínač +X, který přidává příznak spustitelnosti pouze adresářům, takže můžete jedním příkazem rekurzivně zpřístupnit celý strom, aniž byste všechny soubory změnili na spustitelné (popř. museli použít složitější konstrukci s find).
    30.11.2009 12:17 Radek Hladik | skóre: 20
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    +X přidá x právo nejen dresářům, ale i souborům, které už nějaké x mají. Takže například spustitelné soubory.
    Fill avatar 30.11.2009 14:18 Fill | skóre: 19 | blog: Fill | Třebíč
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Dík za upřesnění. Čímžto pádem je tento přepínač ještě refinovanější a o to více zaslouží býti zmíněn.
    30.11.2009 07:59 peter
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    > Je důležité uvědomit si, že vlastník své soubory může smazat

    Pravo mazat ma vlastnik adresara pokial sa nepletiem.
    :~/tmp$ ls -ld ./test
    drwxr-xr-x 2 root root 4096 2009-11-30 07:57 ./test
    :~/tmp$ cd test
    :~/tmp/test$ ls -la ./a
    -rw-r--r-- 1 peter peter 0 2009-11-30 07:57 ./a
    $:~/tmp/test$ rm ./a
    rm: cannot remove `./a': Permission denied
    
    30.11.2009 08:14 pht | skóre: 48 | blog: pht
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Právo mazat nemá ani vlastník, pokud nemá právo zapisovat (+w) na inode adresáře.
    In Ada the typical infinite loop would normally be terminated by detonation.
    Saljack avatar 30.11.2009 14:45 Saljack | skóre: 28 | blog: Saljack | Praha
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Bude vysvětlen i umask někdy v budoucnu?
    Sex, Drugs & Rock´n Roll.
    30.11.2009 15:23 Ash | skóre: 53
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Pěkně napsáno, +1 za chmod +X v komentářích. S petr.users opatrně, ono to sice funguje, ale imho je to starší varianta k petr:users
    30.11.2009 19:59 Spike | skóre: 30 | blog: Communicator | Praha
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    brw-rw---- 1 root root    7, 0 2009-11-08 14:41 blokove_zarizeni
    Ať to čtu jak to čtu… v druhém sloupci určitě není jméno vlastníka. ;)
    David Watzke avatar 30.11.2009 20:10 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Pravda, to mi uteklo. Věta:
    Ve druhém sloupci je uvedeno jméno vlastníka a ve třetím potom název skupiny.
    by tedy měla znít takto:
    Ve třetím sloupci je uvedeno jméno vlastníka a ve čtvrtém potom název skupiny.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Nicky726 avatar 1.12.2009 21:11 Nicky726 | skóre: 56 | blog: Nicky726
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Zde se hodí upozornit, že chmod s přepínačem -R dovede (především spuštěný pod rootem) velice snadno znehodnotit systém

    A co teprv, když dá člověk:

    chmod -R /bla/bla/bla/*

    To je taky pěkný hukot, a nijak nepomůže, že se před odentrováním dvakrát zkontroluje cesta.

    Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
    2.12.2009 09:51 PetrHL | skóre: 17 | blog: petr_h | Neratovice
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Můžete sem prosím hodit konfigurační soubor s nastavením barev pro ls? I když zavolám ls -la --color, výstup není zdaleka tak barevný jako je uvedeno na obrázku zde. Aby se ls --color použil vždy, předpokládám že bude stačit to zadat jako alias do .bashrc.
    "Do, or do not. There is no 'try.'" -- Jedi Master Yoda | CQRLOG | CQRPROP | HamQTH | Domů
    David Watzke avatar 2.12.2009 17:09 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Příloha:
    Jojo... je to /etc/DIR_COLORS (v příloze).
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    10.12.2009 11:00 Hobil
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Chybka: "Například pro spustitelné soubory se často používá 755, tedy rwxr-xr-x – vlastník má neomezená práva a ostatní mohou soubor jen číst nebo spustit"

    Predpokladam, ze ma byt rwxr-xr-xr.

    H.
    Jiří Svoboda avatar 11.12.2009 10:27 Jiří Svoboda | skóre: 37 | blog: cat /dev/mind | Prostějov
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    Je to dobře, nesmysl je to tvoje.
    13.1.2016 12:58 uplnej vypatlanec
    Rozbalit Rozbalit vše Re: Unixové nástroje – 5 (oprávnění: chmod, chown, chgrp)
    kuwa to s tim chown -R / jsem cist driv kuwa :-(((

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.