Zoeken op website

5 'chattr'-opdrachten om belangrijke bestanden onveranderlijk (onveranderlijk) te maken in Linux


chattr (Change Attribute) is een Linux-hulpprogramma voor de opdrachtregel dat wordt gebruikt om bepaalde kenmerken van een bestand in een Linux-systeem in of uit te schakelen om het per ongeluk verwijderen of wijzigen van belangrijke bestanden en mappen te beveiligen, zelfs als u bent ingelogd in als rootgebruiker.

In Linux-eigen bestandssystemen, d.w.z. ext2, ext3, ext4, btrfs, etc. worden alle vlaggen ondersteund, hoewel niet alle vlaggen alle niet-native FS ondersteunen. Je kunt een bestand/map niet verwijderen of wijzigen zodra de attributen zijn ingesteld met de chattr-opdracht, ook al heb je er volledige rechten voor.

Dit is erg handig om attributen in te stellen in systeembestanden zoals passwd- en schaduwbestanden waarin gebruikersinformatie staat.

Syntaxis van chattr
chattr [operator] [flags] [filename]
Attributen en vlaggen

Hieronder volgt een lijst met algemene kenmerken en bijbehorende vlaggen die kunnen worden in- en uitgeschakeld met behulp van de chattr-opdracht.

  1. Als een bestand wordt geopend terwijl het kenmerk ‘A’ is ingesteld, wordt het bijbehorende record niet bijgewerkt.
  2. Als een bestand wordt gewijzigd terwijl het kenmerk ‘S’ is ingesteld, worden de wijzigingen synchroon op de schijf bijgewerkt.
  3. Een bestand is ingesteld met het attribuut ‘a’ en kan alleen worden geopend in de toevoegmodus om te schrijven.
  4. Een bestand is ingesteld met het attribuut ‘i’ en kan niet worden gewijzigd (onveranderlijk). Dit betekent dat er geen hernoeming nodig is, dat er geen symbolische link wordt gemaakt, dat er geen uitvoering is, dat er niet over kan worden geschreven, dat alleen de superuser het attribuut kan uitschakelen.
  5. Er wordt een bestand met het ‘j’ attribuut ingesteld, waarbij alle informatie wordt bijgewerkt naar het ext3-journaal voordat deze wordt bijgewerkt naar het bestand zelf.
  6. Een bestand is ingesteld met het attribuut ‘t’, zonder samenvoeging van de staart.
  7. Een bestand met het attribuut ‘d‘ komt niet meer in aanmerking voor back-up wanneer het dumpproces wordt uitgevoerd.
  8. Wanneer een bestand met het kenmerk ‘u’ wordt verwijderd, worden de gegevens ervan opgeslagen. Hierdoor kan de gebruiker vragen om de verwijdering ervan ongedaan te maken.
Exploitant
  1. + : Voegt het attribuut toe aan het bestaande attribuut van de bestanden.
  2. : Verwijdert het attribuut van het bestaande attribuut van de bestanden.
  3. = : Behoud de bestaande kenmerken van de bestanden.

Hier gaan we enkele van de chattr-opdrachtvoorbeelden demonstreren om attributen voor een bestand en mappen in of uit te schakelen.

1. Hoe u attributen aan bestanden kunt toevoegen om te voorkomen dat ze worden verwijderd

Voor demonstratiedoeleinden hebben we respectievelijk de map demo en het bestand important_file.conf gebruikt. Voordat u attributen instelt, moet u ervoor zorgen dat de bestaande bestanden eventuele attributen hebben ingesteld met behulp van de opdracht ‘ls -l’. Heb je de resultaten gezien? Momenteel is er geen attribuut ingesteld.

[root@tecmint tecmint]# ls -l
total 0
drwxr-xr-x. 2 root root 6 Aug 31 18:02 demo
-rwxrwxrwx. 1 root root 0 Aug 31 17:42 important_file.conf

Om het attribuut in te stellen gebruiken we het + teken en om het attribuut uit te schakelen gebruiken we het teken met de chattr opdracht. Laten we dus onveranderlijke bits instellen op de bestanden met +i vlaggen om te voorkomen dat iemand een bestand verwijdert, zelfs een rootgebruiker heeft geen toestemming om het te verwijderen.

[root@tecmint tecmint]# chattr +i demo/
[root@tecmint tecmint]# chattr +i important_file.conf

Opmerking: het onveranderlijke bit +i kan alleen worden ingesteld door een superuser-gebruiker (d.w.z. root), of een gebruiker met sudo-rechten kan dit instellen .

Nadat we de onveranderlijke bit hebben ingesteld, gaan we het attribuut verifiëren met het commando ‘lsattr‘.

[root@tecmint tecmint]# lsattr
----i----------- ./demo
----i----------- ./important_file.conf

Nu geprobeerd om met geweld te verwijderen, de naam ervan te wijzigen of de rechten te wijzigen, maar dit is niet toegestaan en zegt: "Bewerking niet toegestaan“.

[root@tecmint tecmint]# rm -rf demo/
rm: cannot remove âdemo/â: Operation not permitted
[root@tecmint tecmint]# mv demo/ demo_alter
mv: cannot move âdemo/â to âdemo_alterâ: Operation not permitted
[root@tecmint tecmint]# chmod 755 important_file.conf
chmod: changing permissions of âimportant_file.confâ: Operation not permitted

2. Hoe u het attribuut in Bestanden uitschakelt

In het bovenstaande voorbeeld hebben we gezien hoe u een attribuut kunt instellen om te voorkomen dat bestanden per ongeluk worden verwijderd. Hier in dit voorbeeld zullen we zien hoe u de attribuutrechten kunt resetten (uitzetten) en hoe u een bestand wijzigbaar of wijzigbaar kunt maken met behulp van -i vlag.

[root@tecmint tecmint]# chattr -i demo/ important_file.conf

Nadat u de machtigingen opnieuw heeft ingesteld, controleert u de onveranderlijke status van bestanden met behulp van de opdracht ‘lsattr’.

[root@tecmint tecmint]# lsattr
---------------- ./demo
---------------- ./important_file.conf

U ziet in de bovenstaande resultaten dat de vlag ‘-i’ is verwijderd, wat betekent dat u veilig alle bestanden en mappen in de tecmint-map kunt verwijderen.

[root@tecmint tecmint]# rm -rf *

[root@tecmint tecmint]# ls -l
total 0

3. Hoe u de bestanden /etc/passwd en /etc/shadow kunt beveiligen

Door een onveranderlijk kenmerk in te stellen voor bestanden /etc/passwd of /etc/shadow, worden ze beveiligd tegen onbedoelde verwijdering of manipulatie en wordt het maken van gebruikersaccounts uitgeschakeld.

[root@tecmint tecmint]# chattr +i /etc/passwd
[root@tecmint tecmint]# chattr +i /etc/shadow

Probeer nu een nieuwe systeemgebruiker aan te maken. U krijgt een foutmelding met de melding ‘cannot open /etc/passwd‘.

[root@tecmint tecmint]# useradd tecmint
useradd: cannot open /etc/passwd

Op deze manier kunt u onveranderlijke machtigingen instellen voor uw belangrijke bestanden of systeemconfiguratiebestanden om verwijdering te voorkomen.

4. Voeg gegevens toe zonder bestaande gegevens in een bestand te wijzigen

Stel dat u alleen iedereen wilt toestaan gegevens aan een bestand toe te voegen zonder reeds ingevoerde gegevens te wijzigen of aan te passen, dan kunt u het attribuut ‘a’ als volgt gebruiken.

[root@tecmint tecmint]# chattr +a example.txt

[root@tecmint tecmint]# lsattr example.txt
-----a---------- example.txt

Nadat u de toevoegmodus hebt ingesteld, kan het bestand alleen in de toevoegmodus worden geopend voor het schrijven van gegevens. U kunt het append-attribuut als volgt uitschakelen.

[root@tecmint tecmint]# chattr -a example.txt

Probeer nu reeds bestaande inhoud in een bestand example.txt te vervangen. U krijgt de foutmelding ‘Bewerking niet toegestaan‘.

[root@tecmint tecmint]# echo "replace contain on file." > example.txt
-bash: example.txt: Operation not permitted

Probeer nu nieuwe inhoud toe te voegen aan een bestaand bestand example.txt en verifieer het.

[root@tecmint tecmint]# echo "replace contain on file." >> example.txt
[root@tecmint tecmint]# cat example.txt
Here is the example to test 'a' attribute mean append only.
replace contain on file.

5. Hoe u mappen kunt beveiligen

Om de hele map en de bijbehorende bestanden te beveiligen, gebruiken we de schakelaar ‘-R’ (recursief) met de vlag ‘+i’ samen met het volledige pad van de map.

[root@tecmint tecmint]# chattr -R +i myfolder

Probeer na het recursief attribuut te hebben ingesteld de map en de bijbehorende bestanden te verwijderen.

[root@tecmint tecmint]# rm -rf myfolder/
rm: cannot remove 'myfolder/': Operation not permitted

Om de toestemming uit te schakelen, gebruiken we dezelfde ‘-R’ (recursief) schakelaar met ‘-i’ vlag samen met het volledige pad van de map.

[root@tecmint tecmint]# chattr -R -i myfolder

Dat is het! Gebruik de manpagina's om meer te weten te komen over chattr-opdrachtattributen, vlaggen en opties.