Speciální bity
Z MiS
(Rozdíly mezi verzemi)
m (Dodány zdroje.) |
(Oprava vzhledu, doplnění) |
||
Řádka 1: | Řádka 1: | ||
[[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Uživatelské účty]][[Category:Linux]] | [[Category:VSE]][[Category:Informatika]][[Category:OSY]][[Category:Uživatelské účty]][[Category:Linux]] | ||
+ | |||
+ | == Úvod == | ||
+ | * V systému Unix a systémech z něj vycházejících (Linux,...) se tradičně oprávnění pro přístup k souborům ukládala pomocí devíti bitů viz [[Nastavování práv]]. | ||
+ | * Dále se ovšem ukládaly a ukládají další tři speciální bity, které upravují chování programů a složek v některých specifických případech. | ||
+ | |||
== Set UID (SUID) == | == Set UID (SUID) == | ||
− | * | + | * Používá se pro spustitelné soubory (programy). |
− | * Program | + | * Program je spouštěn s právy vlastníka programu (jako by ho spustil vlastník). |
− | * | + | * (Standardně se program spustí s právy toho, kdo program spustil.) |
− | + | ; Nastavení SUID | |
chmod u+s program | chmod u+s program | ||
− | * | + | ; Ověření SUID |
− | + | * Ve výpisu <code>ls -l</code>. | |
− | + | * Místo písmene <tt>x</tt> ve výpisu práv vlastníka se objeví: | |
− | + | ** <tt>s</tt>... SUID + nastavené právo spouštět (<tt>x</tt>) | |
+ | ** <tt>S</tt>... SUID bez práva spouštět | ||
+ | * Například: | ||
+ | ''$'' ls -l `which passwd` | ||
+ | ''-rw<span style="color:red">s</span>r-xr-x 1 root root 45396 kvě 25 2012 /usr/bin/passwd'' | ||
+ | |||
<div class="Priklad">Příklad použití: | <div class="Priklad">Příklad použití: | ||
Například program <tt>/usr/bin/passwd</tt> (příkaz <tt>passwd</tt>) — pro nastavení hesla potřebuje právo zapisovat do souboru <tt>/etc/shadow</tt>, smí ale zapisovat jen hesla aktuálního uživatele! | Například program <tt>/usr/bin/passwd</tt> (příkaz <tt>passwd</tt>) — pro nastavení hesla potřebuje právo zapisovat do souboru <tt>/etc/shadow</tt>, smí ale zapisovat jen hesla aktuálního uživatele! | ||
Řádka 26: | Řádka 36: | ||
** (Standardně bych vlastník byl také já, ale vlastnická skupina by byla moje primární skupina.) | ** (Standardně bych vlastník byl také já, ale vlastnická skupina by byla moje primární skupina.) | ||
** Pokud vytvářím složku, zdědí vytvářená složka i SGID bit. | ** Pokud vytvářím složku, zdědí vytvářená složka i SGID bit. | ||
− | + | ; Nastavení | |
chmod g+s slozka | chmod g+s slozka | ||
− | + | ; Výpis <code>ls -l</code>: | |
− | + | * Místo <tt>x</tt> v právech ''skupiny'': | |
− | + | **<tt>s</tt>... SGID + právo spouštět pro skupinu | |
− | + | **<tt>S</tt>... SGID - právo spouštět pro skupinu | |
<div class="Priklad"> | <div class="Priklad"> | ||
Používá se u sdílených složek, kde má právo vytvářet soubory skupina uživatelů. Nově vytvořené soubory tak budou opět vlastněny skupinou. | Používá se u sdílených složek, kde má právo vytvářet soubory skupina uživatelů. Nově vytvořené soubory tak budou opět vlastněny skupinou. | ||
Řádka 38: | Řádka 48: | ||
== Sticky-bit == | == Sticky-bit == | ||
− | * | + | * Dnes obvykle používán pouze pro adresáře. |
− | * | + | * (Původně zamýšlená složitější funkčnost, i pro soubory.) |
− | + | * Vlastník souboru může v adresáři soubor mazat, ostatní uživatelé soubor mazat nemohou. | |
− | * | + | ; Nastavení |
− | + | ||
− | + | ||
chmod o+t soubor.txt | chmod o+t soubor.txt | ||
− | + | ; Výpis <code>ls -l</code>: | |
− | * | + | * Místo <tt>x</tt> v právech ''ostatních uživatelů'': |
− | + | ** <tt>t</tt>... „sticky“ + právo spouštět pro ostatní | |
− | + | ** <tt>T</tt>... „sticky“ + právo spouštět pro ostatní | |
+ | |||
+ | <div class="Priklad"> | ||
+ | Příklad použití: | ||
+ | * Složka <tt>/tmp</tt> (do ní si aplikace odkládají dočasné soubory). | ||
+ | </div> | ||
== umask == | == umask == | ||
* Nastavuje, jaká práva má mít nově vytvořený soubor. | * Nastavuje, jaká práva má mít nově vytvořený soubor. | ||
− | * Vlastník bude | + | * Vlastník: bude ten, kdo soubor vytvořil. |
− | + | * Vlastnická skupina: primární skupina toho, kdo soubor vytvořil | |
− | * | + | * Práva získáme tak, že bity masky odečteme od základní masky: |
− | + | ||
− | * bity masky odečteme od základní masky | + | |
** základní maska pro soubory 666 | ** základní maska pro soubory 666 | ||
** základní maska pro adresáře 777 | ** základní maska pro adresáře 777 | ||
− | * | + | * Standardní nastavení umask je 022. |
− | + | <div class="Priklad"> | |
− | + | ; Úkol | |
* Jaká práva bude mít soubor/adresář vytvoření se standardním nastavením <tt>umask</tt>? | * Jaká práva bude mít soubor/adresář vytvoření se standardním nastavením <tt>umask</tt>? | ||
+ | </div> | ||
+ | |||
+ | |||
+ | == Související stránky == | ||
+ | * [[Oprávnění pro přístup k souborům]], [[Nastavování práv]] | ||
Verze z 19. 3. 2015, 07:36
Obsah |
Úvod
- V systému Unix a systémech z něj vycházejících (Linux,...) se tradičně oprávnění pro přístup k souborům ukládala pomocí devíti bitů viz Nastavování práv.
- Dále se ovšem ukládaly a ukládají další tři speciální bity, které upravují chování programů a složek v některých specifických případech.
Set UID (SUID)
- Používá se pro spustitelné soubory (programy).
- Program je spouštěn s právy vlastníka programu (jako by ho spustil vlastník).
- (Standardně se program spustí s právy toho, kdo program spustil.)
- Nastavení SUID
chmod u+s program
- Ověření SUID
- Ve výpisu
ls -l
. - Místo písmene x ve výpisu práv vlastníka se objeví:
- s... SUID + nastavené právo spouštět (x)
- S... SUID bez práva spouštět
- Například:
$ ls -l `which passwd`
-rwsr-xr-x 1 root root 45396 kvě 25 2012 /usr/bin/passwd
Příklad použití:
Například program /usr/bin/passwd (příkaz passwd) — pro nastavení hesla potřebuje právo zapisovat do souboru /etc/shadow, smí ale zapisovat jen hesla aktuálního uživatele!
POZOR!!!
Nebezpečné, používá se výjimečně pouze pro velmi důvěryhodné a prověřené programy.
Set GID (SGID)
- Pro spustitelné soubory (programy):
- Význam analogický jako SUID — program bude spouštěn s právy skupiny, která program vlastní. (Dnes ne moc používané.)
- Pro složky:
- Pokud ve složce vytvořím soubor či složku, pak se vlastnická skupina převezme z nastavení složky. (Vlastník budu já.)
- (Standardně bych vlastník byl také já, ale vlastnická skupina by byla moje primární skupina.)
- Pokud vytvářím složku, zdědí vytvářená složka i SGID bit.
- Nastavení
chmod g+s slozka
- Výpis
ls -l
- Místo x v právech skupiny:
- s... SGID + právo spouštět pro skupinu
- S... SGID - právo spouštět pro skupinu
Používá se u sdílených složek, kde má právo vytvářet soubory skupina uživatelů. Nově vytvořené soubory tak budou opět vlastněny skupinou.
Sticky-bit
- Dnes obvykle používán pouze pro adresáře.
- (Původně zamýšlená složitější funkčnost, i pro soubory.)
- Vlastník souboru může v adresáři soubor mazat, ostatní uživatelé soubor mazat nemohou.
- Nastavení
chmod o+t soubor.txt
- Výpis
ls -l
- Místo x v právech ostatních uživatelů:
- t... „sticky“ + právo spouštět pro ostatní
- T... „sticky“ + právo spouštět pro ostatní
Příklad použití:
- Složka /tmp (do ní si aplikace odkládají dočasné soubory).
umask
- Nastavuje, jaká práva má mít nově vytvořený soubor.
- Vlastník: bude ten, kdo soubor vytvořil.
- Vlastnická skupina: primární skupina toho, kdo soubor vytvořil
- Práva získáme tak, že bity masky odečteme od základní masky:
- základní maska pro soubory 666
- základní maska pro adresáře 777
- Standardní nastavení umask je 022.
- Úkol
- Jaká práva bude mít soubor/adresář vytvoření se standardním nastavením umask?
Související stránky