Uživatelé a skupiny
Uživatelé (users)
Linux je mnohouživatelský (multiuser) operační systém. Seznam uživatelů systému je zapsán standardně v souboru /etc/passwd.
Uživatelé mohou být seskupeni do skupin (groups). Seznam skupin je uložen standardně v souboru /etc/group.
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ ls -l /etc/passwd
-rw-r--r-- 1 root root 3090 říj 26 2022 /etc/passwd
Každý řádek tohoto souboru nám definuje jednoho uživatele systému. Každý řádek je dále rozdělen znakem : na jednotlivá pole, kde každé pole něco znamená.
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
...
jirka:x:1000:1000:Jirka Chráska,,,:/home/jirka:/bin/bash
...
stunnel4:x:126:136::/var/run/stunnel4:/usr/sbin/nologin
libvirt-qemu:x:64055:108:Libvirt Qemu,,,:/var/lib/libvirt:/usr/sbin/nologin
libvirt-dnsmasq:x:127:139:Libvirt Dnsmasq,,,:/var/lib/libvirt/dnsmasq:/usr/sbin/nologin
sshd:x:128:65534::/run/sshd:/usr/sbin/nologin
fwupd-refresh:x:129:140:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
| username (přihlašovací jméno) | heslo (není tam) | UID (user ID) | GID (primary group ID) | Plné jméno (user description) | domácí adresář (home directory) | implicitní shell (login shell) |
|---|---|---|---|---|---|---|
root |
x |
0 |
0 |
root |
/root |
/bin/bash |
jirka |
x |
1000 |
1000 |
Jirka Chráska |
/home/jirka |
/bin/bash |
sshd |
x |
128 |
65534 |
/run/sshd |
/usr/sbin/nologin |
|
nobody |
x |
65534 |
65534 |
nobody |
/nonexistent |
/usr/sbin/nologin |
Přihlašovací jméno
Přihlašovací jméno může obsahovat malá písmena ASCII tabulky a některé speciální znaky (obvykle je povolena pomlčka a tečka). Velká písmena by se neměla používat, protože způsobují potíže při doručování elektronické pošty, kde v adrese nezáleží na velikosti písmen. Délka je v konzervativním případě omezena na osm znaků, avšak v moderních systémech může být delší (typicky ve tvaru jmeno.prijmeni).
Heslo
Heslo bývalo v souboru uloženo dříve, dnes je na této pozici obvykle písmeno x, protože heslo je uschováno v souboru /etc/shadow (kvůli ochraně proti útoku hrubou silou na použitou jednosměrnou šifru).
UID
UID je číslo uživatele, které používá pro rozlišení uživatelů operační systém. Číslo 0 (nula) je vyhrazeno pro správce systému (root), pro kterého se oprávnění nekontrolují. Ostatní čísla jsou běžní uživatelé, kteří jsou si z pohledu systému rovni, přičemž čísla do 100 (resp. 500) jsou vyhrazena pro systémové účty (typicky různí démoni) a čísla nad 500 jsou určena pro běžné uživatele.
| Uživatel s UID=0 (obvykle se jmenuje root) může v systému všechno (klidně i jedním příkazem zbořit celý systém). Je to privilegovaný uživatel a používá se při instalaci a správě systému. Pokud jste root, musíte vědět, co děláte a být opatrní. |
Poznámka: Operační systém obvykle neposuzuje důvěryhodnost programů, ale důvěryhodnost (a oprávnění) uživatelů, kteří je spustili nebo pod kterými vykonávají svůj kód. Program běžící pod uživatelským účtem s UID 0 může měnit i obsah důležitých systémových souborů a adresářů. Stejnému programu běžícímu s právy běžného uživatele však operační systém měnit systémové soubory a nastavení nedovolí.
GID
GID je číslo primární skupiny uživatele. Uživatel musí být vždy členem alespoň jedné skupiny. Systémy, které vycházejí z řady System V zakládají pro každého uživatele stejnojmennou skupinu, jíž jsou jediným členem. Tento způsob nutí správce, aby založil vlastní skupinu, která by sdružovala (vybrané) uživatele (např. v linuxových systémech Fedora, Red Hat Enterprise Linux, CentOS). V systémech vycházejících z větve BSD jsou všichni nově založení uživatelé implicitně členy skupiny users (např. v linuxových distribucích Debian, Ubuntu). Jedno z uvedených chování lze obvykle v systému nastavit.
Plné jméno
Plné jméno je obvykle jméno a příjmení uživatele. Někdy se za čárky uvádí ještě kancelář, telefon do kanceláře a telefon domů. Plné jméno využívají některé programy (např. klient elektronické pošty, který ho implicitně používá pro jméno odesílatele). V souboru není uvedeno kódování, takže je nutné, aby případná písmena s diakritikou byla uvedena v kódování, které implicitně používá celý systém (dnes typicky UTF-8), případně se smířit s tím, že bude někdy špatně interpretováno (nutno vyzkoušet). Uživatel si může své plné uživatelské jméno měnit příkazem chfn.
Domácí adresář
Domácí adresář slouží pro uložení konfiguračních souborů (typicky začínají tečkou a jsou proto skryté a pro uložení uživatelských dat. Typicky jsou domácí adresáře umístěny v /home/prihlasovaci.jmeno, ale není to nezbytně nutné. Definici domácího adresáře používá například shell, který je schopen cestu doplnit při expanzi znaku tilda (~). Běžné programy využívají spíše proměnnou prostředí HOME, která je podle této položky nastavena při přihlášení uživatele (a použije ji např. při ukládání uživatelských souborů). Do domácího adresáře je obvykle při založení uživatele nakopírován obsah adresáře /etc/skel, který obsahuje několik implicitních uživatelských konfiguračních souborů (jako ukázky nebo pro zajištění prvotního zamýšleného nastavení, např. ~/.bashrc pro inicializaci shellu BASH při přihlášení).
Implicitní shell
Implicitní shell je interpret příkazů, který je spuštěn při přihlášení uživatele (nebo při spuštění emulace terminálu v grafickém prostředí), což je typicky /bin/bash. Uživatel si může změnit implicitní shell pomocí příkazu chsh, avšak může vybírat pouze z těch, které jsou uvedeny v souboru /etc/shells. Stejně tak systém při přihlášení nespustí shell, který v tomto souboru není uveden, což je bezpečnostní opatření. Shell může být též nějaký jiný program, který zajistí komunikaci s uživatelem (např. menu). Systémovým účtům se obvykle dávají jako shell programy, které nedělají nic, aby se na ně nemohl někdo přihlásit (např. /sbin/nologin, méně vhodně /bin/false apod.).
Hesla nejsou zapsána v /etc/passwd (kdysi tam byla, ale nebylo to bezpečné), ale jsou zapsána v zašifrované formě v souboru /etc/shadow.
Soubor /etc/shadow může číst jenom uživatel root a členové skupiny root a zapisovat do něj může zase jenom root.
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ ls -l /etc/shadow
-rw-r----- 1 root shadow 1566 říj 26 2022 /etc/shadow
jirka@jirka-Precision-T3610:~/vyuka_sspvc# cat /etc/shadow
root:!:19053:0:99999:7:::
daemon:*:18996:0:99999:7:::
bin:*:18996:0:99999:7:::
sys:*:18996:0:99999:7:::
sync:*:18996:0:99999:7:::
games:*:18996:0:99999:7:::
man:*:18996:0:99999:7:::
...
jirka:$6$tNqBXxvLlaoLEspd$b/1EDbWyFshlqlF5iUbqUdZUQ.L6eynLLIzj.cNt1yaNIdjLvLDfpSG5sFPmI7sql1OUi2LekbQ0K7Y2AHlpm0:19053:0:99999:7:::
stunnel4:!:19056:0:99999:7:::
libvirt-qemu:!:19063:0:99999:7:::
libvirt-dnsmasq:!:19063:0:99999:7:::
sshd:*:19078:0:99999:7:::
fwupd-refresh:*:19291:0:99999:7:::
Skupiny (groups)
Skupiny uživatelů jsou definovány v souboru /etc/group. Každý uživatel musí být členem aspoň jedné skupiny. Tato se nazývá primární skupina. Uživatel může být členem více skupin.
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,jirka
tty:x:5:syslog
disk:x:6:
lp:x:7:
mail:x:8:
...
users:x:100:jirka
nogroup:x:65534:
Soubor /etc/group má podobnou strukturu jako /etc/passwd.
| groupname | heslo (není tam) | GID (group ID) | seznam uživatelů skupiny |
|---|---|---|---|
root |
x |
0 |
|
adm |
x |
4 |
syslog,jirka |
users |
x |
100 |
jirka |
nogroup |
x |
65534 |
Zajímavý uživatel je nobody a zajímavá skupina je nogroup (UID=65534 a GID=65534). Je to doslova neexistující uživatel (nikdo) a neexistující skupina. Používají se dost často z bezpečnostních důvodů. Proces bežící s oprávněními nobody:nogroup má v systému minimální práva.
Skupinová hesla se nacházejí v souboru /etc/gshadow, podobně jako hesla uživatelů v /etc/shadow. Osobně jsem však použití skupinových hesel nikdy neviděl.
Práva pro přístup k souborům a adresářům
Linux používá jednoduchou filosofii: všechno je soubor.
V Linuxu jsou definována práva přístupu (permissions) ke každému souboru (file) anebo adresáři pro vlastníka (owner), skupinu (group) a ostatní (others). Adresář (directory) je speciální soubor, který obsahuje seznam souborů nebo adresářů, které jsou v něm obsaženy. Pojem "složka" se v Linuxu moc nepoužívá.
Tento jednoduchý model oprávnění používají všechny systémy které akceptují standard POSIX (Linux, FreeBSD, OpenBSD, Mac OS X) a nazývá se tradiční unixová oprávnění.
Jiné OS (Windows NT, Netware, OpenVMS) používají formu oprávnění, která se nazývá Access control list (ACL). Do Linuxu byla podpora pro ACL přidána v roce 2003 (RedHat Enterprise Linux 3).
Některé primitivní OS (DOS, Windows 95 a Windows 98) vůbec s oprávněními nepracují.
Výpis oprávnění k libovolnému souboru nebo adresáři dostaneme pomocí příkazu ls -l <soubor|adresář>.
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ ls -l /bin/ls
-rwxr-xr-x 1 root root 142144 zář 5 2019 /bin/ls (1)
| 1 | Zkusíme rozšifrovat, co znamená tento řádek. |
Tradiční unixová oprávnění jsou rozdělena do tří trojic i když ve skutečnosti jsou vlastně tyto trojice čtyři, protože se před ně předsazuje ještě trojice speciálních oprávnění (tzv. sticky, SUID a SGID bit), ale ty budou popsány později.
Každý soubor a adresář má oprávnění pro:
-
vlastníka (tj. je to vlastník souboru nebo adresáře)
-
skupinu (tj. není to vlastník, ale je členem uvedené skupiny)
-
ostatní uživatele (tj. není to vlastník ani nepatří do výše uvedené skupiny)
přičemž každé oprávnění se skládá ze tří práv:
-
r – čtení
-
w – zápis
-
x – spuštění souboru nebo vstup do adresáře
Z výše uvedených poznámek vyplývá, že přístupová práva se určují pouze podle nejkonkrétnější trojice, tj. pokud přistupuje k souboru jeho vlastník, pak jsou na něj aplikovaná práva pouze z první trojice. Pokud k souboru přistupuje někdo, kdo není jeho vlastník, ale patří do stejné skupiny jako soubor, pak je na něj uplatňována trojice oprávnění pro skupinu. Teprve tehdy, pokud k souboru nebo adresáři přistupuje uživatel, který není ani vlastník a ni nepatří do skupiny jako soubor, je na něj uplatněna poslední trojice oprávnění pro ostatní uživatele.
V našem příkladu je vlastníkem uživatel root, skupina je root. Pokud je na některém místě pomlčka -, příslušné právo není přiděleno.
-rwxr-xr-x 1 root root 142144 zář 5 2019 /bin/ls
| práva | počet odkazů | vlastník | skupina | velikost | datum a čas | jméno souboru nebo adresáře | |||
|---|---|---|---|---|---|---|---|---|---|
typ |
vlastník |
skupina |
ostatní |
||||||
- |
rwx |
r-x |
r-x |
1 |
root |
root |
142144 |
zář 5 2019 |
/bin/ls |
-
typ pokud je typ - jde o soubor, pokud je typ d jde o adresář (zde je soubor). Další významy jsou l link, b blokové zařízení, c znakové zařízení, p roura (pipe), s socket
-
vlastník má práva čtení, zápisu i spouštění
-
skupina má práva čtení a spuštění
-
ostatní mají práva čtení a spuštění
Význam oprávnění pro soubory a adresáře
| Soubor | Adresář | |
|---|---|---|
Read |
čtení obsahu souboru |
výpis obsahu adresáře |
Write |
zápis do souboru |
zápis do adresáře (vytváření, mazání a přejmenování souborů i podadresářů) |
eXecute |
spuštění programu |
vstup do adresáře |
| Na Linuxu rozhoduje o tom, zda je nějaký soubor program a je tudíž možné ho spustit právo eXecute. Nerozhoduje o tom nějaká přípona ve jméně souboru, jako je tomu na Windows. |
Speciální oprávnění
SUID (setuid)
$ ls -l /bin/passwd
-rwsr-xr-x 1 root root 68208 lis 29 2022 /bin/passwd
Za standardních okolností dědí potomek (nový proces) oprávnění svého rodiče. Někdy je však nutné, aby měl spuštěný program jiná (vyšší) oprávnění. Pokud je na souboru s programem nastaven SUID bit, neběží spuštěný program s právy rodiče, ale s právy vlastníka tohoto souboru. Používá se v případech, kdy chceme uživateli umožnit provedení akce, na které by potřeboval jiná nebo vyšší oprávnění:
Změna hesla
Hesla uživatelů jsou uložena v souboru /etc/passwd nebo /etc/shadow, do kterých běžný uživatel nemůže zapisovat (soubor shadow nemůže dokonce ani číst). Při změně hesla je ale potřeba změněné heslo do těchto souborů zapsat. Proto má program /usr/bin/passwd nastaven SUID bit a patří uživateli root. Po spuštění běží program passwd s právy roota a heslo může být do příslušného souboru zapsáno.
Změna uživatele
Program běžného uživatele nemůže změnit svoje oprávnění. Může to však udělat program běžící s právy roota. Proto má program su nastavený SUID bit a patří uživateli root. Po zadání správného hesla je spuštěn nový shell, který je nastaven na nová oprávnění.
| SUID bit neznamená, že program poběží s právy uživatele root. Patří-li program jinému uživateli, bude po spuštění běžet s právy tohoto uživatele. Nejběžnější je však tento způsob při poskytování administrátorských oprávnění. Proto musí být každý program se SUID bitem naprogramován s maximální obezřetností, aby neumožnil provést nějakou neoprávněnou činnost. |
| Každý spuštěný program (proces) běží s právy uživatele, který ho spustil. Pokud má program nastaven SUID bit, běží s právy vlastníka souboru. |
SGID (setgid)
Program s nastaveným SGID bitem se chová po spuštění podobně, jako u SUID bitu. Nepřebírá ale oprávnění majitele souboru, nýbrž oprávnění skupiny, které daný soubor s programem na disku patří. Při aplikaci SGID bitu na adresář patří všechny nově vytvořené soubory a adresáře do skupiny, která je shodná s nadřízeným adresářem (který má nastaven zmíněný SGID bit). Bez nastaveného SGID bitu patří nově vytvořené adresáře a soubory primární skupině uživatele (viz výše).
Skóre ve hře
Některé hry zapisují dosažené skóre do souboru, aby mohli hráči své výkony porovnat. Takový soubor by musel mít právo zápisy pro všechny uživatele v systému. Hráči by pak snadno mohli tento soubor měnit a své dosažené skóre neférově zvyšovat. Proto je program s hrou svěřen speciální skupině (např. games) a je mu nastaven SGID bit. Soubor se skóre pak bude mít právo zápisu přidělené jen skupině games. Do souboru se skóre tak spuštěná hra může zapisovat, kdežto uživatelé nemohou soubor měnit.
Skupinový projekt
Uživatelé, kteří pracují na společném projektu, patří do společné skupiny project a obvykle nemají tuto skupinu nastavenou jako primární (nebo si ji zapomenou před každou prací na projektu pomocí příkazu newgrp změnit). Vytvoří-li ve společném adresáři, kam mají na základě členství ve skupině project přístup, nový soubor nebo adresář, bude patřit jiné skupině. Ani při nastavení umask na hodnotu zajišťující skupině zápis tak nebudou kolegové moci soubory upravovat nebo soubory v nových adresářích mazat a přejmenovávat. Přidělit oprávnění všem není nikdy vhodné. Proto je na kořenový adresář projektu, který patří skupině project nastaven SGID bit. Nové soubory a adresáře tak automaticky patří skupině project a nové podadresáře mají nastaven SGID bit.
Sticky bit
Pokud má uživatel do adresáře právo zápisu, může v tomto adresáři i mazat. Nastavíme-li v adresáři sticky bit, bude uživatel smět smazat jen své vlastní soubory nebo adresáře. Ve starších verzích unixových systémů tento příznak na souborech sloužil k tomu, aby kód ukončeného programu zůstal ve swapu. Tímto způsobem bylo dosaženo rychlejšího startu často používaných programů. V dnešních systémech není sticky bit na souborech již delší dobu podporován, protože vlivem používání virtuální paměti a stránkování ztratil pro soubory význam.
Adresář /tmp
Do adresáře /tmp mají všichni uživatelé v systému právo zápisu a odkládají si tam dočasné soubory (zejména to dělají různé programy). Pokud mají právo zápisu, mohou v adresáři i přejmenovávat a mazat soubory i adresáře, což by vedlo k tomu, že by si uživatelé mohli navzájem škodit. Nastavíme-li na tento adresář sticky bit a uživatelé budou vytvářet své soubory a adresáře s adekvátními oprávněními, bude problém vyřešen.
Typy souborů
Před znaky přístupových práv je vidět pomlčka, popřípadě další písmeno, které znamená typ daného souboru, jak je zobrazeno v následující tabulce.
| Typ souboru | Přiřazený znak | Význam (anglicky) | Co to je |
|---|---|---|---|
Běžný soubor |
– |
file |
obyčejný soubor s daty nebo program |
Adresář |
d |
directory |
seznam souborů a podadresářů |
Odkaz |
l |
link |
odkaz na jiný soubor nebo adresář |
Pojmenovaná roura |
p |
pipe |
Roura se používá ke komunikaci dvou programů, jeden program do ní zapisuje, druhý program z ní čte |
Socket |
s |
socket |
Socket je podobný rouře, používá však síťovou infrastrukturu. |
Soubor blokového zařízení |
b |
block file |
Blokové zařízení je takové zažízení, kde čteme nebo zapisujeme data po velkých blocích. Např. disk. |
Soubor znakového zařízení |
c |
character file |
Znakové zařízení je takové zařízení, kde čteme nebo zapisujeme data po bytech (znacích). Příklad: klávesnice, myš, textová obrazovka. |
jirka@jirka-Precision-T3610:~$ ls -l /
celkem 152
lrwxrwxrwx 1 root root 7 bře 2 2022 bin -> usr/bin (1)
drwxr-xr-x 5 root root 4096 zář 2 09:15 boot (2)
drwxr-xr-x 2 root root 4096 bře 2 2022 cdrom
drwxr-xr-x 21 root root 5040 zář 14 07:03 dev
drwxr-xr-x 168 root root 12288 zář 12 16:59 etc
drwxr-xr-x 3 root root 4096 bře 2 2022 home
lrwxrwxrwx 1 root root 7 bře 2 2022 lib -> usr/lib
lrwxrwxrwx 1 root root 10 bře 2 2022 libx32 -> usr/libx32
lrwxrwxrwx 1 root root 9 bře 2 2022 lib32 -> usr/lib32
lrwxrwxrwx 1 root root 9 bře 2 2022 lib64 -> usr/lib64
drwx------ 2 root root 16384 bře 2 2022 lost+found (3)
drwxr-xr-x 3 root root 4096 bře 5 2022 media
drwxr-xr-x 2 root root 4096 led 4 2022 mnt
drwxr-xr-x 6 root root 4096 dub 28 21:58 opt
dr-xr-xr-x 483 root root 0 zář 14 06:32 proc
drwx------ 12 root root 4096 dub 28 21:57 root
drwxr-xr-x 39 root root 1080 zář 14 06:38 run
lrwxrwxrwx 1 root root 8 bře 2 2022 sbin -> usr/sbin
drwxr-xr-x 2 root root 4096 led 4 2022 srv
dr-xr-xr-x 13 root root 0 zář 14 06:32 sys (4)
drwxrwxrwt 25 root root 81920 zář 16 00:00 tmp (5)
drwxr-xr-x 15 root root 4096 led 1 2023 usr
drwxr-xr-x 12 root root 4096 led 1 2023 var
| 1 | l Symbolický odkaz (symlink). Všimněte si, že symlink má nastavena všechna práva, to však ale neznamená, že tomu tak je. Skutečná práva jsou nastavena tam, kam symlink ukazuje (tj. /usr/bin). |
| 2 | d Adresář |
| 3 | Do tohoto adresáře může jenom root a nikdo jiný. |
| 4 | Tento adresář nemůže nikdo měnit (ani root). |
| 5 | Nastaven sticky bit. t na konci. |
jirka@jirka-Precision-T3610:~/vyuka_sspvc$ ls -l /dev
celkem 0
crw-r--r-- 1 root root 10, 235 zář 14 06:32 autofs (1)
drwxr-xr-x 2 root root 480 zář 14 06:32 block (2)
drwxr-xr-x 2 root root 100 zář 14 06:32 bsg
crw-rw---- 1 root disk 10, 234 zář 14 06:32 btrfs-control
drwxr-xr-x 3 root root 60 zář 14 06:32 bus
lrwxrwxrwx 1 root root 3 zář 14 06:32 cdrom -> sr0
lrwxrwxrwx 1 root root 3 zář 14 06:32 cdrw -> sr0
crw--w---- 1 root tty 5, 1 zář 14 06:32 console
lrwxrwxrwx 1 root root 11 zář 14 06:32 core -> /proc/kcore (3)
drwxr-xr-x 18 root root 380 zář 15 11:57 cpu
crw------- 1 root root 10, 60 zář 14 06:32 cpu_dma_latency
crw------- 1 root root 10, 203 zář 14 06:32 cuse
drwxr-xr-x 6 root root 120 zář 14 06:32 disk
...
lrwxrwxrwx 1 root root 3 zář 14 06:32 dvd -> sr0
lrwxrwxrwx 1 root root 3 zář 14 06:32 dvdrw -> sr0
crw------- 1 root root 10, 62 zář 14 06:32 ecryptfs
crw-rw---- 1 root video 29, 0 zář 14 06:32 fb0
lrwxrwxrwx 1 root root 13 zář 14 06:32 fd -> /proc/self/fd
crw-rw-rw- 1 root root 1, 7 zář 14 06:32 full
crw-rw-rw- 1 root root 10, 229 zář 14 06:32 fuse
crw------- 1 root root 241, 0 zář 14 06:32 hidraw0
...
brw-rw---- 1 root disk 8, 0 zář 28 11:32 sda (4)
brw-rw---- 1 root disk 8, 1 zář 28 11:32 sda1 (5)
brw-rw---- 1 root disk 8, 2 zář 28 11:32 sda2
brw-rw---- 1 root disk 8, 5 zář 28 11:32 sda5
brw-rw---- 1 root disk 8, 6 zář 28 11:32 sda6
...
crw--w---- 1 root tty 4, 0 zář 14 06:32 tty0 (6)
crw--w---- 1 root tty 4, 1 zář 14 06:33 tty1 (7)
crw--w---- 1 root tty 4, 10 zář 14 06:32 tty10
crw--w---- 1 root tty 4, 11 zář 14 06:32 tty11
crw--w---- 1 root tty 4, 12 zář 14 06:32 tty12
...
| 1 | c znakové zařízení |
| 2 | d adresář (tam budou další zařízení) |
| 3 | l symlink na paměť jádra |
| 4 | b blokové zařízení. První SATA disk v systému (celý). |
| 5 | b blokové zařízení. První SATA disk v systému, jeho první partition |
| 6 | c znakové zařízení. První console. |
| 7 | c znakové zařízení. Druhá console. |
Pokud si nepamatujete co přesně dělá který přepínač u nějakého programu nebo jak funguje nějaký program, napište man program? Zobrazí se vám dokumentace k programu.
|
ls$man ls
LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default). Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.
Mandatory arguments to long options are mandatory for short options too.
-a, --all
do not ignore entries starting with .
-A, --almost-all
do not list implied . and ..
--author
with -l, print the author of each file
-b, --escape
print C-style escapes for nongraphic characters
--block-size=SIZE
with -l, scale sizes by SIZE when printing them; e.g., '--block-size=M'; see SIZE format below
-B, --ignore-backups
do not list implied entries ending with ~
-c with -lt: sort by, and show, ctime (time of last modification of file status information); with -l: show ctime and sort by name; otherwise: sort by ctime, newest first
-C list entries by columns
--color[=WHEN]
colorize the output; WHEN can be 'always' (default if omitted), 'auto', or 'never'; more info below
-d, --directory
list directories themselves, not their contents
-D, --dired
generate output designed for Emacs' dired mode
-f do not sort, enable -aU, disable -ls --color
-F, --classify
append indicator (one of */=>@|) to entries
--file-type
likewise, except do not append '*'
--format=WORD
across -x, commas -m, horizontal -x, long -l, single-column -1, verbose -l, vertical -C
--full-time
like -l --time-style=full-iso
-g like -l, but do not list owner
--group-directories-first
group directories before files;
can be augmented with a --sort option, but any use of --sort=none (-U) disables grouping
-G, --no-group
in a long listing, don't print group names
-h, --human-readable
with -l and -s, print sizes like 1K 234M 2G etc.
--si likewise, but use powers of 1000 not 1024
-H, --dereference-command-line
follow symbolic links listed on the command line
--dereference-command-line-symlink-to-dir