5 Perintah 'chattr' untuk Membuat File Penting IMMUTABLE (Tidak Dapat Diubah) di Linux


chattr (Ubah Atribut) adalah utilitas Linux baris perintah yang digunakan untuk mengatur/membatalkan atribut tertentu pada file di sistem Linux untuk mengamankan penghapusan atau modifikasi file dan folder penting yang tidak disengaja, meskipun Anda login sebagai pengguna root.

Di sistem file asli Linux, misalnya ext2, ext3, ext4, btrfs, dll. mendukung semua flag, meskipun semua flag tidak mendukung semua FS non-native. Seseorang tidak dapat menghapus atau mengubah file/folder setelah atribut disetel dengan perintah chattr, meskipun seseorang memiliki izin penuh untuk itu.

Ini sangat berguna untuk mengatur atribut dalam file sistem seperti file passwd dan bayangan yang berisi informasi pengguna.

Sintaks obrolantr
chattr [operator] [flags] [filename]
Atribut dan Bendera

Berikut adalah daftar atribut umum dan flag terkait yang dapat disetel/tidak disetel menggunakan perintah chattr.

  1. Jika file diakses dengan kumpulan atribut 'A', catatan waktunya tidak diperbarui.
  2. Jika file dimodifikasi dengan kumpulan atribut 'S', perubahan akan diperbarui secara sinkron pada disk.
  3. File disetel dengan atribut 'a', hanya dapat dibuka dalam mode penambahan untuk penulisan.
  4. File disetel dengan atribut ‘i‘, tidak dapat diubah (tidak dapat diubah). Berarti tidak ada penggantian nama, tidak ada pembuatan tautan simbolis, tidak ada eksekusi, tidak ada yang dapat ditulisi, hanya pengguna super yang dapat membatalkan penyetelan atribut.
  5. File dengan atribut 'j' telah disetel, semua informasinya diperbarui ke jurnal ext3 sebelum diperbarui ke file itu sendiri.
  6. File disetel dengan atribut 't', tanpa penggabungan ekor.
  7. File dengan atribut ‘d‘, tidak akan ada lagi calon cadangan ketika proses dump dijalankan.
  8. Ketika file memiliki atribut 'u' dihapus, datanya akan disimpan. Hal ini memungkinkan pengguna untuk meminta pembatalan penghapusannya.
Operator
  1. + : Menambahkan atribut ke atribut file yang ada.
  2. : Menghapus atribut ke atribut file yang ada.
  3. = : Pertahankan atribut yang ada pada file.

Di sini, kami akan mendemonstrasikan beberapa contoh perintah chattr untuk menyetel/membatalkan setelan atribut pada file dan folder.

1. Bagaimana cara menambahkan atribut pada file agar aman dari penghapusan

Untuk tujuan demonstrasi, kami telah menggunakan folder demo dan file important_file.conf masing-masing. Sebelum menyiapkan atribut, pastikan untuk memverifikasi bahwa file yang ada memiliki atribut yang disetel menggunakan perintah 'ls -l'. Apakah Anda melihat hasilnya, saat ini tidak ada atribut yang disetel.

[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

Untuk menyetel atribut kita menggunakan tanda + dan untuk membatalkannya kita menggunakan tanda dengan perintah chattr. Jadi, mari kita atur bit yang tidak dapat diubah pada file dengan tanda +i untuk mencegah siapa pun menghapus file, bahkan pengguna root pun tidak memiliki izin untuk menghapusnya.

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

Catatan: Bit yang tidak dapat diubah +i hanya dapat disetel oleh pengguna superuser (yaitu root) atau pengguna dengan hak istimewa sudo dapat menyetel .

Setelah menyetel bit yang tidak dapat diubah, mari verifikasi atributnya dengan perintah 'lsattr'.

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

Sekarang, coba hapus paksa, ganti nama, atau ubah izin, tetapi tidak diizinkan mengatakan “Operasi tidak diizinkan”.

[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. Cara menghapus atribut pada File

Dalam contoh di atas, kita telah melihat cara mengatur atribut untuk mengamankan dan mencegah file terhapus secara tidak sengaja. Di sini, dalam contoh ini, kita akan melihat cara mengatur ulang (membatalkan atribut) izin dan memungkinkan untuk membuat file dapat diubah atau diubah menggunakan < kuat>-i bendera.

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

Setelah menyetel ulang izin, verifikasi status file yang tidak dapat diubah menggunakan perintah 'lsattr'.

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

Anda melihat pada hasil di atas bahwa tanda '-i' dihapus, itu berarti Anda dapat dengan aman menghapus semua file dan folder yang berada di folder tecmint.

[root@tecmint tecmint]# rm -rf *

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

3. Cara Mengamankan file /etc/passwd dan /etc/shadow

Menyetel atribut yang tidak dapat diubah pada file /etc/passwd atau /etc/shadow, membuatnya aman dari penghapusan atau gangguan yang tidak disengaja dan juga akan menonaktifkan pembuatan akun pengguna.

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

Sekarang coba buat pengguna sistem baru, Anda akan mendapatkan pesan kesalahan yang mengatakan 'tidak dapat membuka /etc/passwd'.

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

Dengan cara ini Anda dapat mengatur izin yang tidak dapat diubah pada file penting atau file konfigurasi sistem untuk mencegah penghapusan.

4. Menambahkan data tanpa Memodifikasi data yang ada pada File

Misalkan, Anda hanya ingin mengizinkan semua orang menambahkan data pada file saja tanpa mengubah atau memodifikasi data yang sudah dimasukkan, Anda dapat menggunakan atribut 'a' sebagai berikut.

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

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

Setelah mengatur mode append, file dapat dibuka untuk menulis data dalam mode append saja. Anda dapat menghapus atribut append sebagai berikut.

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

Sekarang coba ganti konten yang sudah ada pada file example.txt, Anda akan mendapatkan pesan error 'Operasi tidak diizinkan'.

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

Sekarang coba tambahkan konten baru pada file example.txt yang ada dan verifikasi.

[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. Cara Mengamankan Direktori

Untuk mengamankan seluruh direktori dan file-file di dalamnya, kami menggunakan saklar '-R' (secara rekursif) dengan tanda '+i' bersama dengan jalur lengkap folder tersebut.

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

Setelah mengatur atribut secara rekursif, coba hapus folder dan file-nya.

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

Untuk menghapus izin, kami menggunakan saklar '-R' (secara rekursif) yang sama dengan tanda '-i' bersama dengan jalur lengkap folder tersebut.

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

Itu dia! Untuk mengetahui lebih banyak tentang atribut, flag, dan opsi perintah chattr, gunakan halaman manual.