GNU/Linux >> Belajar Linux >  >> Linux

Perintah Chattr di Linux (Setel Bit yang Tidak Dapat Diubah)

Chattr (Ubah Atribut) adalah utilitas baris perintah Linux yang digunakan untuk mengubah atribut file. Itu dapat mengatur dan menghapus atribut tertentu ke file di sistem Linux untuk mengamankan penghapusan tidak disengaja atau modifikasi file dan folder penting, meskipun Anda masuk sebagai pengguna root.

Jadi, menggunakan perintah chattr Anda membuat file tidak dapat diubah. Dengan kata lain, ini berarti digunakan untuk menghentikan penghapusan file dan direktori secara tidak sengaja. Anda tidak dapat menghapus file yang diamankan melalui atribut chattr meskipun Anda memiliki izin penuh atas file tersebut.

Ini sangat berguna dalam file sistem seperti file shadow dan passwd yang berisi semua informasi pengguna dan kata sandi. Atribut ini hanya dapat disetel pada file dan direktori yang terletak di sistem file ext2, ext3, atau ext4.

Sintaks perintah dan Penggunaan chattr

Di bawah ini adalah sintaks untuk perintah chattr:

       chattr [ -RVf ] [ -v version ] [ mode ] files...

Atribut file yang dapat kita gunakan dengan perintah chattr:

  • a - file hanya dapat dibuka dalam mode penambahan untuk menulis.
  • A - catatan waktu file tidak diubah. Ini menghindari sejumlah I/O disk untuk sistem laptop.
  • c - file secara otomatis dikompresi pada disk oleh kernel. Pembacaan dari file ini mengembalikan data yang tidak terkompresi. Penulisan ke file ini mengompresi data sebelum menyimpannya di disk.
  • C - file tidak akan mengalami pembaruan copy-on-write. Bendera ini hanya didukung pada sistem file yang melakukan copy-on-write. Jika bendera 'C' disetel pada direktori, itu tidak akan berpengaruh pada direktori
  • d - file tidak dapat dicadangkan saat program dump dijalankan.
  • D - ketika sebuah direktori dimodifikasi, perubahan tersebut ditulis secara serempak pada disk; ini setara dengan opsi pemasangan 'dirsync' yang diterapkan pada subset file.
  • i - file tidak dapat diubah, dihapus atau diganti namanya, tidak ada tautan yang dapat dibuat ke file ini dan tidak ada data yang dapat ditulis ke file tersebut. Hanya pengguna super yang dapat menyetel atau menghapus atribut ini.
  • j - file memiliki semua datanya yang ditulis ke jurnal ext3 atau ext4 sebelum ditulis ke file itu sendiri,
  • s - jika file dihapus, bloknya akan di-nolkan dan ditulis kembali ke disk.
  • S - jika file dimodifikasi, perubahan ditulis secara sinkron pada disk; ini setara dengan opsi pemasangan 'sinkronisasi' yang diterapkan pada subset file.
  • t - file tidak akan memiliki fragmen blok parsial di akhir file yang digabungkan dengan file lain
  • T - direktori akan dianggap sebagai hierarki direktori teratas untuk tujuan pengalokasi blok Orlov.
  • u - membuat jika file dihapus, isinya disimpan. Ini memungkinkan pengguna untuk meminta pembatalan penghapusan

1) Cara menyetel atribut file (Setel bit yang tidak dapat diubah)

Untuk mengatur atribut file kita akan menggunakan perintah chattr dengan + operator diikuti dengan nama atribut.

Mari periksa dengan contoh cara mengatur atribut yang tidak dapat diubah ke file. Hanya root atau pengguna dengan hak istimewa sudo yang dapat mengatur dan menghapus flag yang tidak dapat diubah pada file.

File dengan atribut yang tidak dapat diubah:

  • Tidak dapat diubah, dihapus, diganti namanya
  • Tidak ada tautan lunak atau keras yang dapat dibuat oleh siapa pun termasuk pengguna root.
  • Tidak ada data yang dapat ditulis ke file

Mari kita buat file kosong menggunakan perintah sentuh sebagai berikut:

$ touch file1

Sekarang mari kita lihat bagaimana membuat daftar atribut file menggunakan lsattr perintah:

$ lsattr 
-------------e-- ./nagios-cookbook-tutorial
-------------e-- ./chefdk_1.3.40-1_amd64.deb
-------------e-- ./file1

Tambahkan beberapa konten ke file menggunakan perintah echo:

$ echo "Test of i attribute" > file1 
$ cat file1 
Test of i attribute

Sekarang kita dapat mengatur atribut yang tidak dapat diubah menggunakan +i pada file (file1).

$ sudo chattr +i file1
$ lsattr 
-------------e-- ./nagios-cookbook-tutorial
-------------e-- ./chefdk_1.3.40-1_amd64.deb
----i--------e-- ./file1

Dalam perintah berikut kami akan mencoba menambahkan, menghapus keduanya menggunakan pengguna normal dan pengguna sudo (root):

$ echo "Try to edit after set i attribute" >> file1 
-bash: file1: Permission denied
$ sudo echo "Try to edit after set i attribute" >> file1 
-bash: file1: Permission denied
$ rm -f file1 
rm: cannot remove 'file1': Operation not permitted
$ sudo rm -f file1 
rm: cannot remove 'file1': Operation not permitted

Kami dapat mengamati bahwa di atas semua operasi tidak diizinkan.

Catatan: Anda dapat melindungi file penting sebagai /etc/passwd atau /etc/shadow , membuat mereka aman dari penghapusan atau perusakan yang tidak disengaja dan juga akan menonaktifkan pembuatan akun pengguna. Tetapi ketika Anda akan mencoba membuat pengguna sistem baru, Anda akan mendapatkan pesan kesalahan yang mengatakan 'tidak dapat membuka /etc/passwd'. Jika Anda mencoba untuk mengubah kata sandi, Anda akan diminta untuk memasukkan kata sandi baru tetapi ketika Anda akan masuk lain kali, kata sandi baru tidak akan terlihat valid, Anda harus menggunakan kata sandi lama untuk masuk.

2) Cara menghapus atribut (tidak disetel) pada file

Untuk menghapus atribut apa pun dari file, kita harus menggunakan - operator diikuti dengan nama atribut.

Dalam contoh berikut, mari kita hapus atribut yang tidak dapat diubah dari file (file1).

$ sudo chattr -i file1 
$ lsattr file1
-------------e-- ./file1

Anda seharusnya sekarang dapat melakukan semua operasi normal pada file.

3) Cara mengamankan direktori dengan atribut 'i'

Untuk mengamankan direktori, kita harus mengatur atribut secara rekursif (-R) menggunakan + operator.

Perintah berikut akan mengatur bit yang tidak dapat diubah pada direktori ('linoxide') secara rekursif:

$ sudo chattr -R +i linoxide/ 
$ lsattr -d linoxide
----i--------e-- linoxide/

Untuk menghapus, Anda telah menggunakan - operator diikuti oleh i atribut.

$ sudo chattr -R -i linoxide/

4) Menambahkan data pada file tanpa mengubah data yang ada

Dimungkinkan untuk mengizinkan semua orang hanya menambahkan data pada file tanpa mengubah atau memodifikasi data yang sudah dimasukkan dengan a atribut.

Artinya Anda hanya dapat menambahkan konten pada file saat ini tanpa mengubah data yang sudah ada.

Contoh berikut mengatur atribut tambahan ke file (file2).

$ sudo chattr +a file2

6) Cara membuat daftar atribut file

Untuk membuat daftar atribut file atau direktori saat ini, kita harus menggunakan perintah lsattr. Perintah berikut akan mencantumkan atribut file untuk semua file dan folder di direktori saat ini:

$ lsattr 
-------------e-- ./coreutils-8.22-18.el7.x86_64.rpm
-------------e-- ./pac
-------------e-- ./utils
-------------e-- ./linox

Anda dapat memeriksa atribut file dari satu menggunakan perintah berikut:

$ lsattr coreutils-8.22-18.el7.x86_64.rpm 
-------------e-- coreutils-8.22-18.el7.x86_64.rpm

Untuk memeriksa atribut direktori gunakan -d pilihan

$ lsattr -d test
-------------e-- test/

Kesimpulan

Sekarang kita tahu bagaimana kita dapat melindungi file dan folder kita menggunakan perintah chattr di linux. Saya harap Anda menikmati membaca tutorial ini dan silakan tinggalkan saran Anda di bagian komentar di bawah. Untuk informasi lebih lanjut, silakan merujuk man chattr.


Linux
  1. perintah chattr di Linux dengan contoh

  2. Perintah wc Linux

  3. File Contoh Perintah di Linux

  1. 8 Contoh Perintah Kepala di Linux

  2. Perintah grep Linux

  3. ln Contoh Perintah di Linux

  1. 8 Contoh Perintah Stat di Linux

  2. Perintah Ekor Linux

  3. Perintah Sentuh Linux