Někdy nepřemýšlím přímo a omylem „SHIFT+DELETE“ svá data. Horší je, že data před smazáním ani nezálohuji. Pokud jste na tom podobně jako já, máme pro vás dobrou zprávu. Znám užitečný nástroj příkazového řádku s názvem "chattr" který se používá k ochraně souborů a složek před náhodným smazáním nebo úpravou v Linuxu.
Chattr, zkratka pro Ch ange Attr ibute, použije/odstraní určité atributy na soubor nebo složku ve vašem systému Linux. Nikdo tedy nemůže smazat nebo upravit soubory a složky ani náhodně, ani úmyslně, ani jako uživatel root . Zní to užitečně, že? Opravdu!
Zabraňte souborům a složkám před náhodným smazáním nebo úpravou v Linuxu pomocí Chattr
Ve výchozím nastavení je Chattr předinstalovaný v mnoha operačních systémech Linux. Nezatěžujme se tedy instalací.
Výchozí syntaxe příkazu chattr je:
chattr [operator] [switch] [filename]
chattr má následující operátory:
- Operátor '
+
' způsobí, že se vybrané atributy přidají ke stávajícím atributům souborů. - Operátor '
-
' způsobí jejich odstranění. - Operátor '
=
' způsobí, že jsou jedinými atributy, které soubory mají.
Chattr má různé atributy, jmenovitě - aAcCdDeijsStTu . Každé písmeno aplikuje určité atributy na soubor, jak je uvedeno níže.
- a - pouze připojit,
- A - žádné aktualizace času,
- c - komprimovaný,
- C - žádná kopie při zápisu,
- d - žádná skládka,
- D - synchronní aktualizace adresářů,
- e - formát rozsahu,
- i - neměnný,
- j - žurnálování dat,
- P - hierarchie projektu,
- s - bezpečné smazání,
- S - synchronní aktualizace,
- t - žádné slučování ocasu,
- T - vrchol hierarchie adresářů,
- u - nesmazatelné.
V tomto tutoriálu budeme diskutovat o použití dvou atributů, konkrétně a , i které se používají k zabránění smazání souborů a složek.
Zabraňte náhodnému smazání souborů v systému Linux
Dovolte mi vytvořit soubor s názvem file.txt
v mém aktuálním adresáři.
$ touch file.txt
Nebo,
$ > file.txt
Nyní použiji "i
" atribut, díky kterému je soubor neměnný. To znamená - nemůžete smazat, upravit soubor, i když jste vlastník souboru a uživatel root.
$ sudo chattr +i file.txt
Atributy souboru můžete zkontrolovat pomocí příkazu:
$ lsattr file.txt
Ukázkový výstup:
----i---------e---- file.txt

Nyní zkuste soubor odstranit buď jako normální uživatel, nebo s právy sudo.
$ rm file.txt
Ukázkový výstup:
rm: cannot remove 'file.txt': Operation not permitted
Zkusím to pomocí příkazu sudo:
$ sudo rm file.txt
Ukázkový výstup:
rm: cannot remove 'file.txt': Operation not permitted
Zkusme přidat nějaký obsah do textového souboru.
$ echo 'Hello World!' >> file.txt
Ukázkový výstup:
bash: file.txt: Operation not permitted

I když se pokusíte odstranit soubor ze správce souborů v režimu GUI, nemůžete jej smazat.

Jak jste si všimli ve výše uvedených výstupech, nemůžeme smazat nebo upravit soubor ani jako uživatel root.
Chcete-li atributy zrušit, stačí použít "-i
" přepněte, jak je znázorněno níže.
$ sudo chattr -i file.txt
Nyní byl atribut immutable odstraněn. Nyní můžete soubor upravit nebo smazat, jak chcete.
$ echo 'Hello World!' >> file.txt
$ cat file.txt Hello World!
$ rm file.txt

Podobně můžete zabránit náhodnému smazání nebo úpravě adresářů, jak je popsáno v další části.
Zabraňte náhodnému smazání a úpravě složek v systému Linux
Vytvořte adresář s názvem dir1
a soubor s názvem file.txt
uvnitř tohoto adresáře.
$ mkdir dir1 && touch dir1/file.txt
Nyní udělejte tento adresář a jeho obsah (file.txt) neměnný pomocí příkazu:
$ sudo chattr -R +i dir1
Kde,
-R
- učiní dir1 a jeho obsah rekurzivně neměnnými.+i
- učiní adresář neměnným.
Nyní zkuste smazat adresář buď jako normální uživatel, nebo pomocí sudo user.
$ rm -fr dir1
$ sudo rm -fr dir1
Získáte následující výstup:
rm: cannot remove 'dir1/file.txt': Operation not permitted
Zkuste do souboru přidat nějaký obsah pomocí "echo
". Zvládli jste to? Samozřejmě, že jste nemohli!

Chcete-li atributy zpět odvolat, spusťte:
$ sudo chattr -R -i dir1
Nyní můžete smazat nebo upravit obsah tohoto adresáře jako obvykle.
Zabránit náhodnému smazání souborů a složek, ale povolit operaci připojení v systému Linux
Nyní víme, jak zabránit náhodnému smazání a úpravě souborů a složek. Dále zabráníme smazání souborů a složek, ale povolíme zápis souboru pouze v režimu připojení. To znamená, že nemůžete upravovat, upravovat existující data v souboru, přejmenovat soubor a odstranit soubor. Soubor můžete otevřít pro zápis pouze v režimu připojení.
Chcete-li nastavit přiřazení režimu připojení k souboru/adresáři, provedeme následující:
Pro soubory:
$ sudo chattr +a file.txt
Pro adresáře:
$ sudo chattr -R +a dir1
Soubor/složku s atributem 'a' lze otevřít pouze v režimu připojení pro zápis.
Přidejte do souboru (souborů) nějaký obsah, abyste ověřili, zda funguje nebo ne.
$ echo 'Hello World!' >> file.txt
$ echo 'Hello World!' >> dir1/file.txt
Zkontrolujte obsah souboru pomocí příkazu cat:
$ cat file.txt
$ cat dir1/file.txt
Ukázkový výstup:
Hello World!

Jak vidíte, můžeme být schopni připojit obsah. To znamená, že můžeme upravovat soubory a složky.
Pokusme se nyní soubor nebo složku smazat.
$ rm file.txt
Výstup:
rm: cannot remove 'file.txt': Operation not permitted
Zkusme smazat složku:
$ rm -fr dir1/
Nebo zkuste sudo:
$ sudo rm -fr dir1/
Ukázkový výstup:
rm: cannot remove 'dir1/file.txt': Operation not permitted

Chcete-li atributy odebrat, spusťte následující příkazy:
Pro soubory:
$ sudo chattr -R -a file.txt
Pro adresáře:
$ sudo chattr -R -a dir1/
Nyní můžete smazat nebo upravit soubory a složky jako obvykle.
Další podrobnosti naleznete na manuálových stránkách.
$ man chattr
Koneckonců
Zálohování a ochrana dat je jedním z hlavních úkolů správce Linuxu. Na trhu je k dispozici řada bezplatných a komerčních programů pro ochranu dat. Naštěstí máme tento vestavěný nástroj, který nám pomáhá chránit data před náhodným smazáním nebo úpravou. Chattr lze použít jako další nástroj k ochraně důležitých systémových souborů a dat ve vašem systému Linux.
Doporučené čtení:
- Snadný způsob ochrany souborů před náhodným smazáním v systému Linux
- Jak se vyhnout náhodnému vypnutí nebo restartu v systému Linux