Přístupová práva
Každý soubor má jednoho vlastníka a patří jedné skupině. Uživatelé linuxu mohou patřit do jedné a více skupin.
Práva k souborům se mění pomocí programu chomod
.
Práva nastavená na souborech a adresářich, jejich vlastník a skupina
lze zobrazit pomocí příkazu
ls -ld
.
drwx------ 2 root root 16384 13. zář 2012 /home/lost+found
drwx--x--x 83 petr users 4096 27. čen 14.43 /home/petr
První znak označuje typ souboru (d = directory), pak jsou tři znaky pro právo vlastníka, tři znaky pro právo skupiny a tři znaky pro ostatní (pro všechny co napatří do skupiny a nejsou vlastníkem souboru) v pořadí rwx.
Význam práv
Práva se nastavují pro u (user), g (group) a o (others).
Každý uživatel (user) může patřit do jedné a více skupin (group). Pokud uživatel přistupuje k souboru, jehož není vlastníkem a soubor nepatří do žádných skupin uživatele, považuje se uživatel za „others“
Práva se nevztahují na superuživatele (uživatel root), pokud není root vlastníkem souboru (tj. root může přistupovat ke všem souborům, i když je nevlastní).
id
, které je 0.
Program id
Program id
vypíše aktuální identifikaci uživatele (jeho jméno, číslo,
jméno a číslo skupiny do které patří).
Změní-li se dočasne userid
(identifikace uživatele pomocí příkazu su
viz. dále),
pak příkaz who am i
ukazuje stále původní identifikaci,
zatímco id
tu novou.
SYNOPSIS
id [login]
EXAMPES
uid=1000(petr) gid=100(users) skupiny=100(users),0(root),33(video),117(vboxusers)
Program su
Program su
dočasně mění identifikaci uživatele. Pokud není zadáno
jméno uživatele (login), su
se pousí získat identitu superuživatele
root.
SYNOPSIS
su [user] [-c "prikazy"]
OPTIONS
- user
- Login uživatele, jehož identitu chceme získat (pod jehož id chceme spouštět příkazy)
- -c "prikazy"
- Spustí příkazy s identitou zadaného uživatele (nebo roota). Příkazy včetně argumentů musí být v uvozovách
EXAMPLES
1000
$ su -c "id -u"
Heslo:
0
Program sudo
Program sudo
umožňuje spouštět běžným uživatelům příkazy
jako root, podobně jako su -c "prikaz"
. Na rozdíl od su
umožňuje spouštět jen takové příkazy, které mu byli povoleny (v konfiguračím
souboru, který může nastavit jen superuživatel /etc/sudoers
).
Zatímco program su
vyžaduje zadávání hesla uživatele, jehož
identitu chcete získat (pokud nejste root, pak se vás na heslo neptá),
program sudo
se vás ptá na vaše vlastní heslo (někdy ale může být nastaven
tak, že vás požádá o heslo superuživatele, stejně jako su
).
Pomocí sudo
může superuživatel dát superuživatelská práva
jen na některé programy obyčejným uživatelům.
EXAMPLES
root's password:
0
Práva pro obyčejné a speciální soubory
Právo | význam |
---|---|
r (read) | čtení souboru |
w (write) | zápis do souboru |
x (execute) | provádění (spouštění) souboru |
s (set user ID nebo set group ID). | To zavisi na to, pro koho se s nastavuje. Je-li to user, je nastaven bit set user ID, je-li to skupina, nastavuje se bit set group ID. |
t (set sticky bit) | lze jej pouzit jen pro user. |
Bity set user ID a set group ID maji vyznam pouze pri spousteni souboru. Pokud uzivatel spusti soubor, ktery ma nastaven set user ID bit, po dobu behu programu se systemu zda, ze progarm spustil vlastnik souboru. (napr. program passwd vlastni root a ma set user ID, takze bezi s pravy roota - umoznuje tak menit sobor /etc/passwd i beznemu uzivateli a zmenit si tak heslo)
V pripade set user group se systemu jevi spoustejici jako clene skupiny, do ktere patri soubor.
Sticky bit (sticky = uchovani) ma nasledujici vyznam: Ma-li tento bit hodnotu 1,
spustitelny program zustava ulozen v odkladacim prostoru na disku (swap), takze
zavedeni programu do pameti je rychlejsi. Platí pro starší verze linuxu.Dnes
u souborů nemá význam.
Práva pro adresáře
Právo | význam |
---|---|
r (read) | cteni obsahu adresare |
w (write) | vytvareni novych souboru v adresari |
x (execute) | prochazeni adresarem do nizsich urovni podstromu |
s (set user ID nebo set group ID). | To zavisi na to, pro koho se s nastavuje. Je-li to user, je nastaven bit set user ID, je-li to skupina, nastavuje se bit set group ID. |
t (set sticky bit) | lze jej pouzit jen pro user. |
Set user ID nemá pro adresáře význam. Set group ID nastaví skupinu vytvořeného souboru v adresáři na stejnou skupinu jako má adresář (normálně se vytvoří se skupinou uživatele, který soubor vytváří).
Set sticky bit na adresáři zabrání neprivilegovaným uživatelům v odstranění nebo přejmenování v něm obsažených souborů, pokud tyto nejsou v jejich vlastnictví (nebo nejsou vlastníky onoho adresáře). Tomu se říká „restricted deletion flag“, a je to časté v adresářích zapisovatelných všemi, jako je /tmp.
Pro přístup k souborům v adresáři musíme mít právo execute na adresáři, ale nemusíme mít právo read! Read znamená, že si můžeme obsah adresáře prohlédnout a execute znamená, že s ním můžeme pracovat. Právo write znamená, že můžeme v adresáři vytvářet a mazat soubory.
Je zajimave, ze pokud chceme z adresare neco smazat, je dulezite, aby tento adresar mel pravo pro zapis, ale soubory, ktere v nem mazeme, jiz toto pravo miti nemusi! Obdobne to plati pro zapis do takoveho souboru, ovsem pak se zmeni jeho vlastnik atd.
Program chmod
Nastavovaná práva na souborech jsou dělena do 3 kategorií:
Kategorie | Význam |
---|---|
u (user) | vlastnik souboru |
g (group) | pracovni skupina, do ktere vlastnik souboru patri |
o (others) | ostatni (tj. clenove ostatnich pracovnich skupin) |
a (all) | vsechy kategorie zaroven |
SYNOPSIS
chmod {kategorie operator pravo, ...} [-R] {soubor|adresar} [soubory ...]
OPTIONS
- -R
- Práva nastavuje rekurzivně na adresář a všechny soubory v adresáři i podadresářích.
- kategorie
-
u vlastnik g skupina o ostatni a vsichni
- Operátor
-
= nove nastaveni + pridani prava - odejmuti prava
- právo
- r w x s t
EXAMPLES
- chmod go+x soubor(y)
- přidá skupině a ostatním právo execute
- chmod g=w,u-x -R adresar
-
nastavi prava zapisu pro skupinu a odejme vsechna ostatni prava pro skupinu, odebere
vlastníkovy právo execute. Provede se na adresáři a všech souborech a adresářích v něm.
(g=w je ekvivalentni s g-rx,g+w)
Číselný zápis práv
Jinym zpusobem zadavani prav je zadani pristupovych prav pomoci masky bitovych priznaku.
Program chmod
ma v tomte pripade syntax:
chmod [+-]nnn soubor(y)
Kde n je cislo nabyvajicich hodnot 0 az 7, ktere predstavuje bitovy priznak ochrany souboru:
vlastnik skupina ostatni | 4000 - set user ID r w x r w x r w x | 2000 - set group ID | | | | | | | | | | 1000 - sticky bit | | 100 | | 10 | | 1 | | 200 | 20 | 2 | 400 40 4 |
EXAMPLES
- chmod 640 soubor
-
Vlastník = 600 = 400+200 = rw,
Skupina = 40 = 40 = r
Ostatní = 0 = 0 = žádná práva. - chmod 750 adresar
-
Vlastník = 700 = 400 + 200 + 100 = rwx,
Skupina = 50 = 40 + 10 = rx,
Ostatní = 0 = žádná práva - chmod +4100 soubor
- Přidá set user ID na soubor a právo spouštění pro vlastníka.
Program umask
Program umask
meni implicitni pristupova prava, ktera ma kazdy soubor po
vytvoreni. Cislo nnn rika, jaka prava se budou odebirat.
Program umask má vliv pouze na nově vytvořené soubory
(jejichž práva lze samozřejmě přenastavit programem chmod
).
Presneji receno, pri vytvoreni adresare se udeli pravo 777 - nnn
,
pri vytvoreni souboru se udeli pravo 666 - nnn
.
SYNOPSIS
umask [nnn]
EXAMPLES
- umask
- zadanim bez parametru zobrazi nynejsi hodnotu (napr. 022)
- umask 022
- Nastaví umask na 022, tj. soubor se vytvoří defaultně s právy 666-022 = 644, adrsáře s právy 755.
umask
do souboru ~/.profile
se zajistí nastavení při
každém přihlášení.
Změna vlastníka a skupiny souboru
Program chgrp
Program chgrp
slouží ke změně skupiny (group).
SYNOPSIS
chgrp skupina [-R] {soubor|adresar}
OPTIONS
- skupina
- Jméno skupiny nebo její číselné ID.
- -R
- Nastaví skupinu rekurzivně na adresář a všechny soubory v něm.
Program chown
Program chown
slouží ke změně vlastníka (owner).
SYNOPSIS
chown vlastnik [-R] {soubor|adresar}
OPTIONS
- vlastnik
- Jméno vlastnika nebo jeho číselné ID.
- -R
- Nastaví vlastníka rekurzivně na adresář a všechny soubory v něm.
Program chattr
Program chattr
umožňuje nastavovat různé příznaky k souborům. Některé z nich se týkají i
přístupových práv. Funguje jen na filesystemec ext[2-4]. Program lsattr
vypíše atributy souboru.
SYNOPSIS
chattr [-R] +-i soubor(y) lsattr soubor(y)
OPTIONS
- -R
- Nastavuje příznaky rekurzivně.
- i
- Nastaví (+) nebo odebere (-) příznak i. Soubor s tímto příznakem nemůže být změněn, přesunut, ani smazán.