Portál AbcLinuxu, 2. května 2025 07:18

Práva na soubory a adresáře v systémech UNIXového typu

23.2.2006 22:02 | Přečteno: 1785× | poslední úprava: 24.2.2006 07:05

Práva na soubory a adresáře, aneb co je tvoje je i moje a co je moje do toho ti nic není.


Zobrazení práv na soubory a adresáře:
Použijte příkaz ls -la. Výsledek:

 ls -la
...
drwxr-xr-x   2 root   other   512 pro 25 00:28 .ssh
tzn: d = je to adresář, vlastníkem je root, skupina other. První skupina písmen rwx jsou práva pro vlastníka, druhá skupina písmen r-x jsou práva pro skupinu a třetí jsou práva pro zbytek světa. Výsledkem je, že root smí číst, zapisovat a procházet, a skupina se zbytkem světa jen číst a procházet.
Práva x u souboru znamenají možnost spustit, u adresáře možnost procházet, to znamená že třeba při právech --x nemůžete zapisovat, nemůžete číst tj. příkaz ls skončí hláškou: Permission denied. Pokud si myslíte, že to nemá význam, tak má. Můžete například projít do adresáře, kde už práva budete mít.


Změna vlastníka:

chown user soubor
chown -R user adresar
-R znamená rekurzivně, tj. i pro obsah, lze použít i bez -R.


Změna vlastníka a skupiny současně:

chown user:skupina soubor
chown -R user1:skupina1 adresar


Změna práv bez změny skupiny nebo vlastníka:
Pokud Vám nastavení vlastníka a skupiny vyhovuje, ale potřebujete změnit práva tak použijte příkaz chmod. Prováděné změny lze vyjadřovat písemě a číselně. Čísla jsou z rozsahu 0 až 7 a když si to celé představíte binárně, tak to dává smysl. Pořadí rwx je dané. Takže tam kde jsou jedničky, tam je i písmenko. A když si binárně zapsaná čísla převedete do desítkové soustavy, vyjdou vám čísla, pomocí kterých změníte práva.

dec    práva  binárně
 0	---	000
 1 	--x	001 
 2 	-w-	010	
 3 	-wx	011
 4 	r--	100
 5 	r-x	101
 6 	rw-	110
 7 	rwx	111
vlastně se nejedna o nic složitého :)
a tato práva se 3x opakují pro:
  rwx	     rwx	  rwx
vlastníka    skupinu   	ostatní
tj. příkaz chmod 775 nastaví souboru práva rwxrwxr-x, chmod 500 nastaví r-x------. Mno snad to pochopil každý. Tak to byla číselná změna. Ještě je možné měnit práva pomocí písmenek. u = vlastník g = skupina o = ostatní takže chmod u+rw,g-rw,o-rwx nastaví vlastníkovi práva pro čtení a zápis, skupině odere tato práva a pro ostatní nastaví práva ---. Jednotlivé skupiny se oddělují čárkou.


Speciální práva - setuid, setgid, sticky bit
Setuid - pokud je nastaveno na spustitelný soubor, tak výsledný proces, který z programu bude po jeho spuštění běží s právy vlastníka souboru místo toho aby běžel s právy uživatele, který ho spustil. Například:

 ls -la /usr/bin/su
-r-sr-xr-x   1 root     sys        21960 May 11  2004 /usr/bin/su
s místo x znamená setuid bit. To znamená, že pokud jako user zavolám program su, tak se ve skutečnosti spustí pod rootem. viz toto: spustil jsem jako user a výsledek:
user@demo-249 # ps -ef | grep su
    root  3020  3003  0 19:46:33 pts/1    0:00 su -
    user  3021  3006  0 19:46:37 pts/2    0:00 grep su
nastavení suid bitu: chmod 4700 spustitelny_soubor vyhledání všech souborů na disku s suid bitem: find / -perm 4000 setgid - analogicky stejné jako setuid, akorát je závislé na skupině.
 ls -la /usr/bin/mail
-r-x--s--x   1 root     mail       61416 Oct 21  2004 /usr/bin/mail
To znamená, že program bude spuštěn s právy skupiny mail. Nastavení guid bitu: chmod 2555 spustitelny_soubor setgid bit může mít ještě jedno zajímavé použití a to pokud je nastaven na adresář, tak všechny nové objekty, které jsou v tomto adresáři vytvořené mají místo skupiny uživatele skupinu nadřazeného adresáře. nastavení chmod g+s adresar Sticky bit se používá v adresářích, do kterých může zapisovat každý, ale není žádoucí aby zde každý mohl mazat i soubory, které mu nepatří. Smazat takový soubor může root, nebo vlastník.
ls -la /tmp/
drwxrwxrwt   7 root     sys          559 Feb 21 21:18 .
Sticky bit je zde označen písmenem t. nastavení chmod 1755 adresar.

Jak vidíte, nastavení práv je poměrně hrubé. Pro jemnější rozlišení lze použít ACLs - Access Control Lists. O tom zas někdy potom...        

Hodnocení: 85 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

vencour avatar 23.2.2006 22:08 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Odpovědět | Sbalit | Link | Blokovat | Admin

Kandidát do faq.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
Max avatar 23.2.2006 22:23 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Odpovědět | Sbalit | Link | Blokovat | Admin
Jo, do FAQ by se to hodilo, akorát tady bych viděl možná problémek :
vlastně se nejedna o nic složitého :)
a tato práva se 3x opakují pro:

  rwx	       rwx	       rwx
skupinu   vlastníka	ostatní
Nemělo by to být spíše :
  rwx	        rwx	  rwx
vlastníka  skupinu  ostatní
Zdar Max
Měl jsem sen ... :(
vencour avatar 23.2.2006 22:36 vencour | skóre: 56 | blog: Tady je Vencourovo | Praha+západní Čechy
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu

Dyť ve faq se dá opravovat, čili to už by se dodělalo.

Ty nejhlubší objevy nečekají nutně za příští hvězdou. Jsou uvnitř nás utkány do vláken, která nás spojují, nás všechny.
24.2.2006 07:04 bee_free | skóre: 3 | blog: bee_free
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
jj pravda... opraveno...
5.4.2006 10:10 deph
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Neviete niekto poradit co znamena ak mam atribut suboru napriklad:

-rwxrwx---+ 1 jozko skola 91648 2006-03-17 13:29 Hlavickovy list.doc

konkretne ma zaujima preco je tam to '+' skusal som lsattr ale zda sa ze to s tym nema nic spolocne. vopred dik
5.4.2006 10:17 bee_free | skóre: 3 | blog: bee_free
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Jedná se nastavená ACL. viz zde: http://www.abclinuxu.cz/blog/bee_free/2006/3/2/122941
xxx avatar 24.2.2006 00:09 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Odpovědět | Sbalit | Link | Blokovat | Admin
ja si pamatuju eXecute je 1, Write je 2 a Read je 4. A scitat uz umim :)
Please rise for the Futurama theme song.
11.11.2006 14:50 gorgo | skóre: 11 | blog: denicek
Rozbalit Rozbalit vše Re: Práva na soubory a adresáře v systémech UNIXového typu
Odpovědět | Sbalit | Link | Blokovat | Admin
peknej clanek, urcite by se hodilo dat to do faq. i kdyz... google prochazi vse=)
kazdopadne: dovedel jsem se o setUID a setGID vlastnostech pro adresare az tady a je to presne to, co jsem potreboval, takze nastveni techto prav jiz existujici adresarove strukture se nastavi:
find . -type d -exec chmod ug+s '{}' \;

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.