GNU/Linux >> Znalost Linux >  >> Linux

Oprávnění a ukládání souborů?

Řekněme, že otevřete soubor, do kterého máte oprávnění k zápisu.
Mezitím změníte oprávnění a odeberete oprávnění k zápisu, zatímco máte soubor stále otevřený v nějakém editoru.

Co se stane, když jej upravíte a uložíte?

Přijatá odpověď:

Oprávnění souboru se kontrolují při otevření souboru. Změna oprávnění nemá vliv na to, co s ním mohou dělat procesy, které již mají soubor otevřený. To se někdy používá u procesů, které začínají s dodatečnými oprávněními, otevřou soubor a pak tato další oprávnění zahodí:mohou k souboru stále přistupovat, ale nemusí jej znovu otevřít.

Editoři však obvykle nenechávají soubor otevřený. Když editor otevře dokument, stane se pod pokličkou to, že editor načte obsah souboru do paměti a soubor zavře. Když dokument uložíte, editor soubor otevře a zapíše nový obsah.

Editoři mohou při ukládání souboru postupovat podle jedné ze dvou strategií. Mohou vytvořit nový soubor a poté jej přesunout na místo. Případně mohou otevřít existující soubor a přepsat starý obsah. Přepsání má tu výhodu, že se nemění oprávnění a vlastnictví souboru a že funguje i v adresáři pouze pro čtení. Hlavní nevýhodou přepisování je, že pokud se ukládání uprostřed nezdaří (selhání editoru, pád systému, plný disk, …), zůstane vám oříznutý dokument. Různí editoři volí různé strategie; ten dobrý udělá, pokud je to možné, zápis do nového a poté přesun a přepíše pouze do adresáře pouze pro čtení (po vytvoření zálohy někde jinde).

Pokud editor postupuje podle strategie nové a poté přesunout, na oprávněních k souboru nezáleží:editor vytvoří nový soubor a potřebuje k tomu pouze oprávnění k zápisu do adresáře. Existují dvě výjimky:pokud má adresář sticky bit, může změna vlastnictví souboru (ale ne oprávnění) znemožnit procesu přesunutí nového souboru na místo. Další výjimkou jsou systémy, které podporují oprávnění k odstranění prostřednictvím seznamů ACL (jako je OSX):zrušení oprávnění k odstranění ze souboru může znemožnit přesun.

Pokud editor dodržuje strategii přepisování, zrušení oprávnění k zápisu znemožní ukládání. (Některé editory, které ve výchozím nastavení přepisují, se však mohou vrátit k novému a poté přesunout.)

Související:Jak změnit název souboru obsahujícího znaky?

Ve Vimu můžete vynutit strategii přepisu vypnutím backupcopy volba; viz také, proč se hodnota inode mění, když upravujeme v editoru „vi“?. V Emacsu můžete vynutit strategii přepisu nastavením backup-by-copying proměnná na t .


Linux
  1. Jak zkopírovat oprávnění a vlastnictví souboru do jiného souboru v Linuxu

  2. Jak změnit oprávnění a vlastníky pomocí příkazového řádku

  3. Základy oprávnění k souborům Linux

  1. Oprávnění pro Linux:Úvod do chmod

  2. Priorita uživatele a vlastníka skupiny v oprávněních k souboru?

  3. Jak změnit oprávnění k souborům a adresářům pomocí Správce souborů

  1. Linux – Rozumíte unixovým oprávněním a typům souborů?

  2. Otázky k pohovoru s Linuxem – základní oprávnění k souborům a adresářům

  3. Zachování oprávnění souborů a složek pomocí rsync