|
33 | 33 | \end{slide} |
34 | 34 |
|
35 | 35 | \begin{itemize} |
36 | | -\item informace o uživatelích v souborech \texttt{/etc/passwd}, a |
37 | | -\texttt{/etc/group} jsou zpracovávány různými systémovými programy, např. |
38 | | -\texttt{login} (přihlášení do sys\-té\-mu na základě uživatelského jména a |
39 | | -hesla) nebo \texttt{su} (změna identity). \emsl{Jádro o těchto souborech nic |
40 | | -neví, používá pouze numerickou identifikaci uživatele a skupiny.} |
41 | | -\item dnes již hesla nejsou z bezpečnostních důvodů přímo v |
42 | | -\texttt{/etc/passwd}, ale například v \texttt{/etc/shadow}, který běžnému |
43 | | -uživateli přístupný není, pouze uživatel \texttt{root} má právo pro čtení |
44 | | -a zápis. Tedy pouze privilegované programy jako \texttt{login} nebo |
45 | | -\texttt{sshd} mohou z tohoto souboru číst nebo zapisovat (program |
46 | | -\texttt{passwd} běží pod uživatelem \texttt{root} díky \emph{setuid} bitu |
47 | | -nastaveném na souboru programu, viz poznámky na straně \pageref{SUID_BIT}). |
48 | | -Takto jsou hesla separovaná od veřejně přístupných informací, navíc |
49 | | -soubor který hesla obsahuje, je ukládá v zahašované/zašifrované formě, |
50 | | -takže nejsou přímo čitelná. |
51 | | -Na BSD systémech (např. FreeBSD, Mac OS X) se místo \texttt{/etc/shadow} |
52 | | -používá soubor \texttt{/etc/master.passwd}. |
53 | | -\item Soubor \texttt{/etc/shadow} je podobně strukturovaný jako |
54 | | -\texttt{/etc/passwd}. Jeden záznam obsahuje většinou následující položky |
55 | | -(Solaris): uživatelské jméno, zahašované heslo (spolu s indikátorem že |
56 | | -daný účet je zablokovaný), poslední modifikace hesla, |
57 | | -minimum dní požadovaných mezi změnou hesla, maximum dní po které je heslo |
58 | | -platné, počet dní po kterých je uživatel varován o expiraci hesla, počet |
59 | | -povolených dní neaktivity uživatele, absolutní čas expirace uživatele, |
60 | | -počet neúspěšých pokusů o nalogování tohoto uživatele. |
61 | | -\item Hesla v \texttt{/etc/shadow} jsou uložena takovým způsobem, aby |
62 | | -pokud se povede někomu soubor získat, měl ztíženou práci při odhadování |
63 | | -hesel. Původní (cleartext) heslo se prožene jednosměrnou kryptografickou |
64 | | -funkcí (která je navíc parametrizovatelná, čímž se výpočetní a prostorová |
65 | | -složitost pro útok hrubou silou ještě zvýší) |
66 | | -a uloží se do \texttt{/etc/shadow} v této formě. Ověřování hesla pak |
67 | | -funguje tak že, se na cleartext heslo aplikuje daná funkce s danými |
68 | | -parametry a výsledek se porovná s polem hesla v \texttt{/etc/shadow}. |
69 | | -Pokud jsou stejné, proběhla autentizace úspěšně. Původně navržená funkce |
70 | | -přestala s rozvojem procesorů stačit, takže se dnes používají funkce MD5, |
71 | | -SHA1, Blowfish a další. Položka hesla v \texttt{/etc/shadow} je pak vnitřně |
72 | | -strukturovaná pomocí speciálních znaků, takže programy ověřující heslo ví, |
73 | | -jakou funkci a s jakými parametry použít. |
74 | | -Většina systémů umožňuje globální konfiguraci použitých funkcí a jejich |
75 | | -parametrů. |
76 | | -\item existují i jiné systémy, které (nejen) pro autentizaci |
77 | | -\texttt{/etc/passwd} nemusí vůbec používat, například NIS (Network Information |
78 | | -Service) nebo LDAP (Lightweight Directory Access Protocol). |
79 | | -\item skupina uživatele uvedená v \texttt{/etc/passwd} se nazývá |
80 | | -\emsl{primární}. Tuto skupinovou identifikaci dostanou např. soubory vytvořené |
81 | | -procesy uživatele. Další skupiny, ve kterých je uživatel uveden v souboru |
82 | | -\texttt{/etc/group}, jsou doplňkové (\emph{supplementary}) a rozšiřují |
83 | | -přístupová práva uživatele: skupinový přístup je povolen ke všem objektům, |
84 | | -jejichž skupinový vlastník je roven buď primární, nebo jedné z doplňkových |
85 | | -skupin. |
86 | | -\item původně měl v UNIXu každý uživatel vždy aktivní pouze jednu skupinovou |
87 | | -identitu. Po nalogování byl ve své primární skupině, pro získání práv jiné |
88 | | -skupiny bylo třeba se do ní přepnout příkazem \texttt{newgrp} (skupinová |
89 | | -obdoba \texttt{su}, řídí se obsahem souboru \texttt{/etc/group}), který |
90 | | -spustil nový shell. |
91 | | -\item v novějších UNIXech není třeba pro přístup k souborům měnit primární |
92 | | -skupinovou identitu procesu, pokud uživatel patří do potřebné skupiny. Změna |
93 | | -identity je nutná, pouze když chceme vytvářet soubory s jinou skupinovou |
94 | | -identitou, než je primární skupina uživatele. Lokálně pro určitý adresář toho |
95 | | -lze dosáhnout nastavením skupinového vlastníka adresáře na požadovanou skupinu |
96 | | -a nastavením bitu SGID v přístupových právech adresáře -- to platí pro systémy |
97 | | -založené na System~V. U BSD stačí změnit požadovanou skupinu u adresáře. |
98 | | -Příklad vytvoření takového adresáře na Solarisu (příkaz \texttt{chown} |
99 | | -musí být proveden pod uživatelem \texttt{root}): |
100 | | - |
101 | | -\begin{verbatim} |
102 | | -# mkdir mydir |
103 | | -# chown :lidi mydir |
104 | | -# ls -ald mydir |
105 | | -drwxr-xr-x 2 root lidi 4 Nov 2 20:01 mydir |
106 | | -# cd mydir/ |
107 | | -mydir # touch foo |
108 | | -mydir # ls -ald foo |
109 | | --rw-r--r-- 1 root root 0 Nov 2 20:01 foo |
110 | | -mydir # chmod g+s . |
111 | | -mydir # ls -ald . |
112 | | -drwxr-sr-x 2 root lidi 4 Nov 2 20:01 . |
113 | | -mydir # touch bar |
114 | | -mydir # ls -ald bar |
115 | | --rw-r--r-- 1 root lidi 0 Nov 2 20:01 bar |
116 | | -mydir # |
117 | | -\end{verbatim} |
118 | | - |
119 | | -\item druhá položka v řádcích \texttt{/etc/group} obsahuje zakódované |
120 | | -skupinové heslo používané příkazem \texttt{newgrp}, to se již dnes nepoužívá. |
121 | | -Například na FreeBSD je příkaz \texttt{newgrp} přístupný už jen superuživateli |
122 | | -(kvůli volání \texttt{setgroups}). |
| 36 | +\item User information in files \texttt{/etc/passwd} and \texttt{/etc/group} are |
| 37 | +processed by various system programs, like \texttt{login} or \texttt{su}. |
| 38 | +The kernel knows nothing about these files as it only uses numeric |
| 39 | +representation of users and groups. |
| 40 | +\item Passwords are long gone from \texttt{/etc/passwd}, they are stored some |
| 41 | +place else, for example in \texttt{/etc/shadow}, which is not readable to an |
| 42 | +uprivileged user. The passwords are also salted and then hashed. On BSD based |
| 43 | +systems, eg. FreeBSD or macOS, instead of \texttt{/etc/shadow}, |
| 44 | +\texttt{/etc/master.passwd} database is used. |
| 45 | +\item If \texttt{/etc/shadow} does exist, it is structured in a similar way as |
| 46 | +\texttt{/etc/passwd}. |
| 47 | +\item There are also protocols used for autentization that do not use |
| 48 | +\texttt{/etc/passwd} at all, for example NIS (Network Information Service) or |
| 49 | +LDAP (Lightweight Directory Access Protocol). |
| 50 | +\item The user group in \texttt{/etc/passwd} is called \emph{primary} for the |
| 51 | +user. Such a group is used when files are created. Other groups a user belongs |
| 52 | +to, those in the user's entry in \texttt{/etc/group}, are called |
| 53 | +\emph{supplementary} and provide additional group privileges to access files. |
123 | 54 | \end{itemize} |
124 | 55 |
|
125 | 56 | %%%%% |
|
0 commit comments