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.
- Jika file diakses dengan kumpulan atribut 'A', catatan waktunya tidak diperbarui.
- Jika file dimodifikasi dengan kumpulan atribut 'S', perubahan akan diperbarui secara sinkron pada disk.
- File disetel dengan atribut 'a', hanya dapat dibuka dalam mode penambahan untuk penulisan.
- 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.
- File dengan atribut 'j' telah disetel, semua informasinya diperbarui ke jurnal ext3 sebelum diperbarui ke file itu sendiri.
- File disetel dengan atribut 't', tanpa penggabungan ekor.
- File dengan atribut ‘d‘, tidak akan ada lagi calon cadangan ketika proses dump dijalankan.
- Ketika file memiliki atribut 'u' dihapus, datanya akan disimpan. Hal ini memungkinkan pengguna untuk meminta pembatalan penghapusannya.
Operator
- + : Menambahkan atribut ke atribut file yang ada.
- – : Menghapus atribut ke atribut file yang ada.
- = : 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.