GNU/Linux >> Belajar Linux >  >> Linux

chattr Contoh Perintah untuk Mengubah Atribut File (Jadikan file tidak dapat diubah)

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.


Linux
  1. perintah chattr di Linux dengan contoh

  2. 5 Contoh Perintah Wget untuk Mengunduh File di Linux.

  3. 5 Contoh Perintah Sentuh Linux (Cara Mengubah Stempel Waktu File)

  1. 10 Contoh Perintah Cat untuk Mengelola File di Linux / UNIX

  2. 7 Contoh Perintah Patch untuk Menerapkan File Patch Diff di Linux

  3. ln Contoh Perintah di Linux

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

  2. Perintah mv di Linux:7 Contoh Penting

  3. File Contoh Perintah di Linux