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 13:44 | Upozornění

    ČTK (Česká tisková kancelář) upozorňuje (X), že na jejím zpravodajském webu České noviny byly dnes dopoledne neznámým útočníkem umístěny dva smyšlené texty, které nepocházejí z její produkce. Jde o text s titulkem „BIS zabránila pokusu o atentát na nově zvoleného slovenského prezidenta Petra Pelligriniho“ a o údajné mimořádné prohlášení ministra Lipavského k témuž. Tyto dezinformace byly útočníky zveřejněny i s příslušnými notifikacemi v mobilní aplikaci Českých novin. ČTK ve svém zpravodajském servisu žádnou informaci v tomto znění nevydala.

    Ladislav Hagara | Komentářů: 5
    dnes 13:33 | Komunita

    Byla založena nadace Open Home Foundation zastřešující více než 240 projektů, standardů, ovladačů a knihoven (Home Assistant, ESPHome, Zigpy, Piper, Improv Wi-Fi, Wyoming, …) pro otevřenou chytrou domácnost s důrazem na soukromí, možnost výběru a udržitelnost.

    Ladislav Hagara | Komentářů: 0
    dnes 13:00 | Nová verze

    Společnost Meta otevírá svůj operační systém Meta Horizon OS pro headsety pro virtuální a rozšířenou realitu. Vedle Meta Quest se bude používat i v připravovaných headsetech od Asusu a Lenova.

    Ladislav Hagara | Komentářů: 0
    dnes 04:33 | IT novinky

    Společnost Espressif (ESP8266, ESP32, …) získala většinový podíl ve společnosti M5Stack, čímž posiluje ekosystém AIoT.

    Ladislav Hagara | Komentářů: 0
    včera 23:44 | Nová verze

    Byla vydána nová stabilní verze 3.5 svobodného multiplatformního softwaru pro editování a nahrávání zvukových souborů Audacity (Wikipedie). Přehled novinek také na YouTube. Nově lze využívat cloud (audio.com). Ke stažení je oficiální AppImage. Zatím starší verze Audacity lze instalovat také z Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 16:44 | Zajímavý článek

    50 let operačního systému CP/M, článek na webu Computer History Museum věnovaný operačnímu systému CP/M. Gary Kildall z Digital Research jej vytvořil v roce 1974.

    Ladislav Hagara | Komentářů: 0
    včera 16:22 | Pozvánky

    Byl zveřejněn program a spuštěna registrace na letošní konferenci Prague PostgreSQL Developer Day, která se koná 4. a 5. června. Na programu jsou 4 workshopy a 8 přednášek na různá témata o PostgreSQL, od konfigurace a zálohování po využití pro AI a vector search. Stejně jako v předchozích letech se konference koná v prostorách FIT ČVUT v Praze.

    TomasVondra | Komentářů: 0
    včera 03:00 | IT novinky

    Po 48 letech Zilog končí s výrobou 8bitového mikroprocesoru Zilog Z80 (Z84C00 Z80). Mikroprocesor byl uveden na trh v červenci 1976. Poslední objednávky jsou přijímány do 14. června [pdf].

    Ladislav Hagara | Komentářů: 6
    včera 02:00 | IT novinky

    Ještě letos vyjde Kingdom Come: Deliverance II (YouTube), pokračování počítačové hry Kingdom Come: Deliverance (Wikipedie, ProtonDB Gold).

    Ladislav Hagara | Komentářů: 7
    21.4. 19:11 | Komunita

    Thunderbird 128, příští major verze naplánovaná na červenec, přijde s nativní podporou Exchange napsanou v Rustu.

    Ladislav Hagara | Komentářů: 28
    KDE Plasma 6
     (71%)
     (10%)
     (2%)
     (18%)
    Celkem 680 hlasů
     Komentářů: 4, poslední 6.4. 15:51
    Rozcestník

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

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

    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.