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
