Portál AbcLinuxu, 7. května 2025 17:04
Pro "množiny" souborů je podle mne srozumitelnější používat termín složka, ale někteří "linuxáci" to nemají rádi, protože s tím asi přišel Microsoft v českých lokalizacích Windows.
O to ani tak nejde, podstatnější je, že termín složka vzbuzuje představu, že je soubor v nějaké složce uložen. Na unixových filesystémech je ale taková představa naprosto mylná a velmi matoucí: na nějaký soubor může být odkaz v deseti adresářích a nebo také v žádném.
R:
(ve Windows), a podruhé to samé ještě jednou jako S:\user_name
. A můžete tomu říkat složka nebo adresář, stejně to bude považovat za jeden z divů, co počítače umí.
Ostatně to samé se dá říci o adresáři – ten zase vzbuzuje představu, že jsou tam nějaké adresy. Což jednak nemusí být pravda, jednak adresy se vyskytují i na spoustě jiných míst, než jsou soubory. Zrovna na Linuxu, kde "všechno je soubor", je to přísné rozlišování na adresáře a složky takové všelijaké.
Ostatně to samé se dá říci o adresáři – ten zase vzbuzuje představu, že jsou tam nějaké adresy.
V podstatě ano - číslo inodu je svým způsobem adresa.
Dokumenty
). Ale jinak proti složkám nic nemám, aby někdo nemyslel.
Nevysvětlil jste, jaký je podle vás rozdíl mezi složkou a adresářem.Nikdo se na něj neptal, když se pak zeptal, tak jsem ho vysvětlil.
A zrovna v tomhle případě nestačí říct, že jde o adresáře – jsou to adresáře souborového systému, jak je uložen na disku? Nebo jsou to adresáře přimountovaného souborového systému?Teď se budu opakovat, ale třeba Vám to předtím uniklo: adresář je prostředek operačního systému, kde ho jádro vyčaruje Vám může být jedno. Takže stačí říct, že jde o adresáře.
Nikdo se na něj neptal, když se pak zeptal, tak jsem ho vysvětlil.Pokud ten rozdíl považujete za zásadní, a tazatel mezi složkou a adresářem zjevně nerozlišuje, bylo by rozumné ten rozdíl vysvětlit rovnou. Zvlášť v situaci, kdy není neobvyklým jevem, kdy někdo bazíruje na tom používat v Linuxu název adresář v jakémkoli významu a složka je pro něj sprosté slovo.
Teď se budu opakovat, ale třeba Vám to předtím uniklo: adresář je prostředek operačního systému, kde ho jádro vyčaruje Vám může být jedno. Takže stačí říct, že jde o adresáře.Pokud je adresář prostředek operačního systému, o kterém nemusím nic vědět, nemusím ani vědět, zda obsahuje soubory nebo jenom odkazy na ně. Nebo zda je to dokonce virtuální "filtr souborů". A pak je adresář plně ekvivalentní se složkou. To ale rozhodně není tento případ, protože pro zabezpečení přístupu musím přesně vědět, čemu se přístupová práva nastavují. Je to adresář (prostředek operačního systému) v konkrétním souborovém systému na disku? Takže ať ten souborový systém připojím kamkoli, vždy se ta přístupová práva uplatní? Nebo je to adresář (prostředek operačního systému) určený umístěním v adresářové hierarchii počínající rootem? Takže když do
/usr
namountuji pokaždé jiný diskový oddíl, budou mít soubory se stejným názvem vždy stejná práva?
ls -ld
zahlásí "d", tak to je directory
, v opačném případě (ikona na desktopu s nejasnou vazbou na obsažená data) to může být folder
. Navíc ls -f
už má jiný význam :D
1. Mám třeba roota (legálně) na jednom serveru, ke kterému je fyzický přístup dost problematický (je to 60 kilometrů daleko, dostat se tam dá jen ve všední den v pracovní době a ještě se musím předem domluvit. Majitel toho serveru tam nemá roota vůbec (stejně by nevěděl co s ním).
2. Nástroje, o kterých je tu řeč, jsou určeny právě pro případ, kdy přístup na úrovni roota (nebo kontrolu nad démonem, který pod rootem běží) získá někdo, kdo ho mít nemá. Samozřejmě by se to stávat nemělo, ale chyby se dějí a jedna pojistka navíc není k zahození.
... a není důvěryhodný ...Čtěte.
4.6. Help!!! My system is totally unusable! What do I do? You can reboot into a non-LIDS enhanced kernel, or boot into your LIDS enhanced kernel with LIDS disabled to try and patch things up. To boot with LIDS disabled, specify lids=0 at the lilo prompt. For example, if your LIDS enhanced kernel is called lids-kernel you would enter the following at the lilo prompt: lilo: lids-kernel lids=0 That's the easy part. The difficult part is getting your LIDS enabled system to shutdown. You may not be able to shutdown successfully depending on your LIDS configuration.Pokud root nebude mít právo zápisu do konfigurace boot manageru, nemá šanci vzdáleně rebootnout do jiného kernelu.
Pokud root nebude mít právo zápisu do konfigurace boot manageru, nemá šanci vzdáleně rebootnout do jiného kernelu.Na to nepotřebuje právo zápisu, třeba s grubem tu konfiguraci může změnit během bootu (při troše dobré vůle ze strany toho, kdo grub konfiguroval, dokonce i po síti).
kexec
id
, aby si mohl aspoň ověřit, že ten uživatel root
má opravdu UID nula. :-)
Pak by stejně musel existovat někdo jiný, kdo by tohle právo měl – tj. ekvivalent roota.
On to právě není ekvivalent. Vzhledem k nešťastné historické koncepci oprávnění (root může všechno - a ledacos může jen root) je potřeba aby pod rootem běžela řada procesů z naprosto malicherných důvodů, třeba jen proto, že potřebují poslouchat na portu s číslem menším než 1024. Systémy jako SELinux, LIDS a svým způsobem i AppArmor existují právě pro případ, kdy nad takovou aplikací získá kontrolu někdo s nekalými úmysly.
je potřeba aby pod rootem běžela řada procesů z naprosto malicherných důvodů, třeba jen proto, že potřebují poslouchat na portu s číslem menším než 1024.Pokud je číslo portu jediným důvodem, tak přece můžeme použít přesměrování pomocí iptables. Služba běží na vyšším portu a z privilegovaného se na něj přesměrovává. K té koncepci: vždycky musí existovat nějaký "vlastník" počítače, který si s ním může dělat úplně cokoli. Nepřál bych si mít stroj, který bych nemohl (v případě potřeby) plně ovládat. Co někdy asi trochu chcbí, je možnost, delegovat některá práva na jiné uživatele. To ale také není neřešitelné - viz třeba Solaris.
K té koncepci: vždycky musí existovat nějaký "vlastník" počítače, který si s ním může dělat úplně cokoli.
Ve fyzickém smyslu ano. Ale není důvod, proč by to musel být jeden speciální uživatelský účet.
Lépe to samozřejmě vyřešit lze. Že to jde i v Linuxu, to ukazují právě zmíněné nástroje typu SELinux, LIDS, AppArmor apod. I když trochu překvapivě (aspoň pro mne) ale všechny jdou cestou omezení navíc, žádný nepočítá s tím, že by naopak povolil přidělování capabilities procesům s nenulovým EUID.
I když trochu překvapivě (aspoň pro mne) ale všechny jdou cestou omezení navíc, žádný nepočítá s tím, že by naopak povolil přidělování capabilities procesům s nenulovým EUID.Ono je to překvapivé z pohledu uživatele – ten by samozřejmě radši přidělil procesu jen právo naslouchat na portu 80. Ale z pohledu programátora chápu, proč je to zrovna takhle – je to stará dobrá zásada nesahat na něco, co funguje. A přístupová práva jsou na Linuxu (a unixech) léta ověřená a funkční, a přidělování capabilities nenulovým EUID by znamenalo dělat do tohohle systému díry. Což se samozřejmě nikomu nechce.
Já bych spíš řekl, že se v praxi ukázalo, že přístup založený na kombinaci
je z bezpečnostního hlediska naprosto nevhodný. Odlišné bezpečnostní modely jdou cestou výjimek z prvního pravidla. Já se snažím naznačit, že i když to vypadá na první pohled nesmyslně, mohlo by bezpečnost zvýšit i zavedení výjimek z druhého pravidla (protože by pak nemuselo tolik procesů celkem zbytečně běžet pod rootem).
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.