File juga dapat memiliki atribut yang diekspresikan dengan cara lain selain izin yang telah kita lihat sejauh ini. Contohnya adalah membuat file tidak dapat diubah (kata mewah, yang berarti tidak dapat diubah). File yang tidak dapat diubah masih memiliki kepemilikan dan izin grup dan RWX yang normal, tetapi tidak akan mengizinkan pengguna untuk mengubahnya, bahkan jika itu berisi izin yang dapat ditulis. Karakteristik lain dari ini adalah bahwa file tidak dapat diganti namanya.
Dalam posting ini, kita akan membahas tentang cara menggunakan perintah chattr untuk mengubah atribut file di Linux dan membuat file penting tidak dapat diubah. chattr adalah singkatan dari Change Attribute. perintah chattr adalah alat yang sangat berguna di Linux dan digunakan untuk mengubah atribut file. Tidak dapat diubah berarti setelah saya mengatur atribut untuk beberapa file dengan menggunakan perintah chattr maka Anda tidak akan dapat memindahkan file, menghapus file, membuat tautan file atau mengedit file meskipun Anda memiliki akses penuh untuk file itu. pengguna root juga tidak dapat melakukan perubahan apa pun pada file itu hingga atribut diterapkan. Anda dapat menggunakan perintah chattr untuk mengatur dan menghapus atribut file. pengguna root hanya memiliki akses untuk mengatur atau menghapus atribut file dan direktori menggunakan perintah chattr.
Jadi mari kita lihat beberapa contoh perintah chattr untuk mengubah Atribut File:
Setel Atribut “i” ke File
Misalkan saya memiliki file bernama geek.txt yang dapat diakses oleh semua orang, artinya setiap pengguna dapat datang dan menghapus, memindahkan, atau mengedit file tersebut. Lihat output di bawah ini.
# ls -l geek.txt -rwxrwxrwx. 1 root root 0 Apr 24 03:59 geek.txt # Everyone has full access to "geek.txt"
# rm geek.txt # I am able to delete the file rm: remove regular empty file `geek.txt'? y
Sekarang mari kita atur Attribute ke file geek.txt menggunakan perintah chattr. Untuk mengatur atribut kita harus menggunakan tanda “+” dan untuk menghapus atribut kita harus menggunakan tanda “–”.
# chattr +i geek.txt # Setting Attribute to a file
Dimana,
i – Singkatan dari Immutable.
Anda juga dapat menggunakan -V opsi untuk memeriksa keluaran Verbose saat menyetel atribut ke file.
# chattr -V +i geek.txt # Setting attribute to a file with -V chattr 1.41.12 (17-May-2010) Flags of geek.txt set as ----i--------e-
Jadi kita set atribut ke file geek.txt. untuk mengonfirmasi hal yang sama, Anda dapat menggunakan perintah lsattr. Lihat contoh output di bawah ini. Anda akan melihat i (Disorot dengan warna Merah) di bagian izin file.
# lsattr geek.txt # confirm if attribute set or not ----i--------e- geek.txt
Sekarang mari kita coba Hapus, Hapus, Pindahkan, dan ubah izin file dan saya yakin Anda tidak dapat melakukan salah satu dari itu.
1. Hapus File:
# rm geek.txt # Removing the File rm: remove regular empty file `geek.txt'? y rm: cannot remove `geek.txt': Operation not permitted
# You can also try to remove the file forcefully. # rm -rf geek.txt # Removing the file forcefully rm: cannot remove `geek.txt': Operation not permitted
2. Pindahkan File:
# mv geek.txt test.txt # Move the file mv: cannot move `geek.txt' to `test.txt': Operation not permitted
3. Edit Berkas:
# cat >> geek.txt bash: geek.txt: Permission denied
4. Ubah Izin File:
# chmod 755 geek.txt chmod: changing permissions of `geek.txt': Operation not permitted
Seperti yang Anda lihat pada semua contoh di atas, kami tidak dapat melakukan perubahan apa pun pada file tersebut.
Menghapus atribut -i (tidak dapat diubah) dari file
Untuk Menghapus atribut “i” gunakan perintah di bawah ini.
# chattr -i geek.txt # Unset "i" attribute
Setelah menghapus atribut, Anda akan melihat bagian izin akan menjadi kosong.
# lsattr geek.txt --------------- geek.txt
Membuat direktori tidak dapat diubah menggunakan chattr
Sekarang mari kita coba untuk mengamankan direktori dengan mengubah atributnya secara rekursif menggunakan perintah chattr. Di sini saya memiliki direktori bernama data dan semua orang memiliki akses penuh ke direktori itu secara rekursif. Lihat contoh keluaran di bawah ini.
# mkdir data # chmod -R 777 data/ # ls -l total 4 drwxrwxrwx. 2 root root 4096 Apr 24 04:25 data
Sekarang atur atribut ke direktori itu.
# chattr +i data/ # lsattr ----i--------e- ./data
Anda juga dapat mengatur atribut secara Rekursif menggunakan opsi -R dengan chattr.
# chattr -R +i data/
Setelah mengatur atribut ke direktori sekarang coba hapus, pindahkan atau buat file, saya yakin Anda tidak akan diizinkan melakukan salah satu dari itu. Lihat contoh keluaran di bawah ini.
# rmdir data/ # Deleting the Directory rmdir: failed to remove `data/': Operation not permitted
# rm -rf data/ # Deletiing the Directory Forcefully rm: cannot remove `data': Operation not permitted
# mv data/ mydata # Moving the Directory mv: cannot move `data/' to `mydata': Operation not permitted
# cd data/ # cat > test.txt # Creating a File in the directory bash: test.txt: Permission denied
Di mana sebenarnya kita dapat menggunakan perintah chattr?
Mari kita ambil Contoh:Sebagai administrator Linux jelas Anda tidak ingin siapa pun mengakses file konfigurasi Anda, membuat perubahan pada file apa pun atau menghapus file konfigurasi apa pun atau menyalahgunakannya. Adalah tanggung jawab Anda untuk mengamankannya dan menjaganya dari tangan yang salah yang tidak memiliki wewenang untuk mengaksesnya. Kami dapat mengamankan semua konfigurasi kami dengan menggunakan perintah chattr.
Di Linux, semua file konfigurasi disimpan di direktori /etc. Jika kita menyetel atribut ke direktori /etc maka tidak ada yang dapat mengakses konfigurasi Anda. Jadi mari kita lakukan itu.
# chattr +i /etc/ # Setting attribute to /etc directory
Sekarang mari kita coba melakukan beberapa tugas:
Contoh :1 Buat Grup
# groupadd g5 groupadd: cannot lock /etc/group; try again later.
Contoh :2 Setel sandi untuk setiap Pengguna
# passwd michelle Changing password for user michelle. New password: Retype new password: passwd: Authentication token manipulation error
Contoh :3 Buat Pengguna Baru
# useradd thegeekdiary useradd: cannot lock /etc/passwd; try again later.
Seperti yang Anda lihat di atas, kami tidak dapat melakukan beberapa tugas seperti membuat pengguna baru, mengatur kata sandi untuk pengguna mana pun, membuat grup baru. kami tidak dapat melakukan semua tugas ini karena ketika kami membuat pengguna baru atau menetapkan kata sandi untuk pengguna mana pun, itu memperbarui file /etc/passwd dan file /etc/shadow yang tidak mungkin dilakukan di sini karena kami menetapkan atribut untuk direktori /etc lengkap.
Catatan :Di sini saya mengatur atribut untuk melengkapi direktori /etc untuk menjelaskan Anda sebagai contoh. Tetapi Anda dapat mengatur atribut file sesuai kebutuhan Anda misalnya jika Anda hanya ingin mengontrol manajemen pengguna dan grup maka Anda tidak perlu mengatur atribut untuk direktori /etc lengkap Anda hanya dapat mengatur untuk /etc/passwd dan /etc/shadow dan untuk grup atur atribut untuk /etc/group. Jika Anda ingin mengontrol Tabel Sistem File, atur atribut untuk /etc/fstab dan seterusnya.Sekarang mari kita ambil contoh lain dan unmount sistem file. Lihat contoh keluaran di bawah ini.
Contoh :4 Lepas Sistem File
# umount /media/ # Unmounting a File System can't create lock file /etc/mtab~2762: Permission denied (use -n flag to override)
Kami juga tidak dapat meng-unmount sistem file. Untuk melakukan semua tugas di atas, kita harus menghapus atribut yang telah kita terapkan untuk direktori /etc.
Hapus atribut dengan menggunakan perintah chattr
Kita dapat menghapus atribut dengan menggunakan perintah chattr dengan opsi -i.
# chattr -Vi /etc/ # Removing Attributes from directory chattr 1.41.12 (17-May-2010) Flags of /etc/ set as ----------I--e-
Izinkan untuk menambahkan File menggunakan perintah chattr
Anda dapat mengizinkan file untuk menambahkan data menggunakan perintah chattr dengan opsi +a. Dengan menerapkan atribut ini Anda hanya diperbolehkan untuk menulis data pada file tersebut dan tidak diperbolehkan untuk menghapus dan memindahkan.
Di sini saya mengizinkan pengguna untuk menambahkan data pada file geekdiary.txt.
# chattr +a thegeekdiary.txt # Setting +a Attribute
Untuk memeriksa atribut yang diterapkan gunakan perintah di bawah ini. Anda akan melihat bagian izin.
# lsattr thegeekdiary.txt -----a-------e- thegeekdiary.txt
Seperti yang Anda lihat di bawah, kami dapat melihat konten file.
# cat thegeekdiary.txt Welcome to thegeekdiary.com
Sekarang mari kita coba menambahkan beberapa data dalam file.
# cat >> thegeekdiary.txt # Writing some data Here you will get Linux Tutorials
# Sekarang konfirmasikan hal yang sama dengan menggunakan perintah cat
# cat thegeekdiary.txt Welcome to thegeekdiary.com Here you will get Linux Tutorials
Jadi kita bisa berhasil menambahkan data di thegeekdiary.txt. Sekarang mari kita coba untuk menghapus file tersebut.
# rm thegeekdiary.txt # Deleting the File rm: remove regular file `thegeekdiary.txt'? y rm: cannot remove `thegeekdiary.txt': Operation not permitted
# rm -rf thegeekdiary.txt # Deleting the File Forcefully rm: cannot remove `thegeekdiary.txt': Operation not permitted
Untuk informasi lebih lanjut terkait perintah chattr, Anda dapat menggunakan perintah di bawah ini pada sistem linux Anda.
# man chattr # man lsattr
Lihat beberapa Opsi perintah chattr yang berguna:
- +i – File dengan atribut +i tidak dapat dihapus, dipindahkan, diganti namanya. singkatnya tidak dapat diubah.
- -i – Opsi ini memungkinkan untuk menghapus atribut i dari file.
- -V – Untuk melihat keluaran Verbose
- -a – Dengan menggunakan atribut ini hanya akan memungkinkan untuk menambahkan data pada file dan tidak dapat dihapus atau dipindahkan.