abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

dnes 01:22 | Zajímavý článek

Julia Evans pomocí svých kreslených obrázků proniká do Linuxu a informačních technologií. Vedle ucelených zinů publikuje také jednotlivé kreslené obrázky (RSS).

Ladislav Hagara | Komentářů: 1
včera 13:22 | Zajímavý software

Jordi Sanfeliu vydal verzi 1.0.0 svého unixového jádra Fiwix (Wikipedie) určeného také pro výuku operačních systémů. Dle článku na OSNews na něm začal pracovat již před více než dvaceti lety. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT. Stáhnout a vyzkoušet lze živou disketu nebo CD s GNU/Fiwixem.

Ladislav Hagara | Komentářů: 3
včera 06:00 | Nová verze

Byla vydána nová verze 10.7 open source alternativy GitHubu, tj. softwarového nástroje s webovým rozhraním umožňujícího spolupráci na zdrojových kódech, GitLab (Wikipedie). Představení nových vlastností v příspěvku na blogu. Vývojáři GitLabu zdůrazňují Web IDE (YouTube) a SAST (Static Application Security Testing) pro Go a C/C++.

Ladislav Hagara | Komentářů: 0
22.4. 14:00 | Zajímavý článek

David Revoy, autor open source webového komiksu Pepper&Carrot nebo portrétu GNU/Linuxu, zveřejnil na svém blogu recenzi notebooku Librem 13 od společnosti Purism. Používá jej již sedm měsíců a s ním i jako umělec spokojen. Potřebu francouzské AZERTY klávesnice vyřešil přelepkami. Na displej se podíval kalibrační sondou, barvy vyladil pomocí open source softwaru DisplayCAL, v aplikaci Inkscape nastavil zvětšování na 170 % aby 1 cm v Inkscapu byl 1 cm v reálu. Webovou kameru, mikrofon, Wi-Fi a Bluetooth lze na Librem 13 hardwarově vypnout.

Ladislav Hagara | Komentářů: 7
21.4. 23:44 | Komunita

Několik posledních verzí GNOME Shellu obsahuje chybu způsobující memory leak (únik paměti). Viz například videozáznamy verzí 3.26 nebo 3.28. Nalezení chyby #64 a její opravě se věnuje Georges Basile Stavracas Neto v příspěvku na svém blogu [reddit].

Ladislav Hagara | Komentářů: 1
21.4. 10:33 | Komunita

V pondělí měl na YouTube online premiéru otevřený krátký 2D film Hero vytvořený v 3D softwaru Blender. Cílem stejnojmenného projektu Hero je vylepšit nástroj Grease Pencil (tužka) v Blenderu 2.8.

Ladislav Hagara | Komentářů: 4
20.4. 23:22 | Nová verze

Byla vydána verze 4.0 kolekce svobodného softwaru umožňujícího nahrávání, konverzi a streamovaní digitálního zvuku a obrazu FFmpeg (Wikipedie). Přehled novinek v Changelogu (GitHub).

Ladislav Hagara | Komentářů: 0
20.4. 17:22 | Komunita

Včera vydanou hru Rise of the Tomb Raider pro Linux lze do pondělí 23. dubna koupit na Steamu s 67% slevou. Místo 49,99 € za 16,49 €.

Ladislav Hagara | Komentářů: 0
20.4. 16:11 | Komunita

Na Humble Bundle lze získat počítačovou hru Satellite Reign (Wikipedie, YouTube) běžící také v Linuxu zdarma. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 5
20.4. 15:44 | Zajímavý software

Společnost Apple koupila před třemi lety společnost FoundationDB vyvíjející stejnojmenný NoSQL databázový systém FoundationDB (Wikipedie). Včera byl tento systém uvolněn jako open source pod licencí Apache 2.0. Zdrojové kódy jsou k dispozici na GitHubu.

Ladislav Hagara | Komentářů: 0
Používáte na serverech port knocking?
 (2%)
 (7%)
 (46%)
 (27%)
 (17%)
Celkem 362 hlasů
 Komentářů: 29, poslední 5.4. 12:25
    Rozcestník

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

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

    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: 61 | 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 | 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.