Proč je chown
příkaz root-only?
Proč nemohou uživatelé bez oprávnění root používat chown k rozdávání souborů, které vlastní?
Přijatá odpověď:
Většina unixových systémů brání uživatelům „rozdávat“ soubory, to znamená, že uživatelé mohou spouštět pouze chown
pokud mají oprávnění cílového uživatele a skupiny. Od používání chown
vyžaduje vlastnictví souboru nebo být root (uživatelé si nikdy nemohou přivlastnit soubory jiných uživatelů), pouze root může spouštět chown
změnit vlastníka souboru na jiného uživatele.
Důvodem tohoto omezení je, že předání souboru jinému uživateli může umožnit, aby se v neobvyklých, ale přesto důležitých situacích staly špatné věci. Například:
- Pokud má systém povoleny diskové kvóty, mohla by Alice vytvořit soubor, do kterého by mohla zapisovat po celém světě, v adresáři, do kterého má přístup pouze ona (takže nikdo jiný k tomuto souboru, do kterého lze zapisovat, nemá přístup), a poté spustit
chown
aby tento soubor vlastnil jiný uživatel Bill. Soubor by se pak započítával do Billovy diskové kvóty, i když soubor může používat pouze Alice. - Pokud Alice předá soubor Billovi, neexistuje žádná stopa, že by Bill tento soubor nevytvořil. To může být problém, pokud soubor obsahuje nezákonná nebo jinak kompromitující data.
- Některé programy vyžadují, aby jejich vstupní soubor patřil konkrétnímu uživateli, aby bylo možné ověřit požadavek (soubor například obsahuje některé pokyny, které program provede jménem tohoto uživatele). Toto obvykle není bezpečný návrh, protože i kdyby Bill vytvořil soubor obsahující syntakticky správné instrukce, nemusel mít v úmyslu je v tomto konkrétním okamžiku provést. Nicméně povolení Alici vytvořit soubor s libovolným obsahem a nechat si jej vzít jako vstup od Billa může situaci jen zhoršit.
Jak velký je Pipe Buffer?
Ssh – Linux ekvivalentní vzdálené vzdálené komunikaci Powershell „one-to-many“?