GNU/Linux >> Znalost Linux >  >> Linux

Proč běžný uživatel nemůže „chown“ soubor?

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.

Linux
  1. Proč používat shm_open?

  2. Proč je setuid v adresářích ignorován?

  3. Jak mohu chown soubor na subuid bez sudo

  1. Proč nemohu použít CD ve skriptu Bash?

  2. Existuje soubor, který vždy existuje a 'normální' uživatel ho nemůže lstat?

  3. Centos 7 - přidání uživatele do skupiny sudoers - stále není v souboru sudoers - proč?

  1. Proč nemůže bezkořenový Podman vytáhnout můj obrázek?

  2. Úvod do monitorování uživatelských účtů v Linuxu

  3. Linux chmod and chown – Jak změnit oprávnění a vlastnictví souborů v Linuxu