Cách sử dụng lệnh Chattr trong Linux

theanh

Administrator
Nhân viên
Lệnh chattr (thay đổi thuộc tính) trong Linux là một công cụ mạnh mẽ được sử dụng để sửa đổi các thuộc tính của tệp trên hệ thống tệp ext2, ext3 hoặc ext4. Nó cho phép người dùng thiết lập các thuộc tính nhất định để kiểm soát cách truy cập và sửa đổi tệp. Ví dụ, tùy chọn +i có thể khiến tệp không thể thay đổi, nghĩa là tệp không thể bị thay đổi, xóa hoặc đổi tên, ngay cả bởi người dùng gốc, cho đến khi thuộc tính không thể thay đổi bị xóa. Các thuộc tính khác bao gồm +a, cho phép tệp chỉ được mở ở chế độ thêm và +c, đánh dấu tệp để nén. Lệnh này đặc biệt hữu ích cho quản trị viên hệ thống cần thực thi các biện pháp kiểm soát truy cập nghiêm ngặt và bảo vệ các tệp hệ thống quan trọng khỏi những thay đổi vô tình hoặc cố ý. Lệnh chattr phải được sử dụng một cách thận trọng, vì việc sử dụng không đúng cách có thể hạn chế quyền truy cập vào các tệp theo những cách không mong muốn.

Điều kiện tiên quyết​

  • Máy chủ chạy hệ điều hành Linux.
  • Mật khẩu gốc được cấu hình trên máy chủ.

Cú pháp cơ bản​

Cú pháp cơ bản của lệnh chattr được hiển thị bên dưới:
Mã:
chattr [OPTIONS] [OPERATOR][ATTRIBUTES] FILE
Giải thích ngắn gọn về từng tùy chọn được hiển thị bên dưới:
  • +: Được sử dụng để thêm các thuộc tính cụ thể vào tệp.
  • -: Được sử dụng để xóa các thuộc tính cụ thể khỏi tệp.
  • =: Được sử dụng để đặt các thuộc tính đã chỉ định làm các thuộc tính duy nhất.
  • a: Chỉ có thể mở ở chế độ thêm để ghi.
  • A: Bản ghi atime không được cập nhật.
  • c: Sẽ tự động nén tệp.
  • i: Bảo vệ tệp của bạn khỏi việc xóa nhầm.
  • S: Các thay đổi tệp được ghi đồng bộ trên đĩa.

Bảo mật tệp khỏi việc xóa nhầm​

Bảo mật các tệp quan trọng là rất quan trọng đối với bất kỳ quản trị viên hệ thống nào. Bạn có thể sử dụng lệnh chattr để bảo mật tệp của mình để bất kỳ người dùng nào cũng không thể xóa, đổi tên hoặc sửa đổi tệp của bạn.

Để hiểu rõ hơn, hãy tạo một thư mục có tên là dir1 và tệp có tên là file1 bằng lệnh sau:
Mã:
mkdir dir1
touch file1
Tiếp theo, in các thuộc tính của cả file1 và dir1 bằng lệnh sau lệnh:
Mã:
ls -l
Đầu ra:
Mã:
drwxr-xr-x 2 root root 4096 May 3 11:56 dir1
-rw-r--r-- 1 root root 0 May 3 11:56 file1
Tiếp theo, đặt cờ +i trên cả dir1 và file1 để ngăn không cho bất kỳ ai xóa tập tin.
Mã:
chattr +i dir1
chattr +i file1
Tiếp theo, xác minh thuộc tính bằng cách sử dụng sau lệnh:
Mã:
ls -l
Đầu ra:
Mã:
drwxr-xr-x 2 root root 4096 May 3 11:56 dir1
-rw-r--r-- 1 root root 0 May 3 11:56 file1
Bây giờ, hãy thử xóa tệp và thư mục:
Mã:
rm -rf file1 dir1
Đầu ra:
Mã:
rm: cannot remove ‘file1’: Operation not permitted
rm: cannot remove ‘dir1’: Operation not permitted
Bây giờ, hãy thử đổi tên tệp:
Mã:
mv file1 file2
Đầu ra:
Mã:
mv: cannot move ‘file1’ to ‘file2’: Operation not permitted
Bây giờ, hãy thử thay đổi quyền của file:
Mã:
chmod 777 file1
Đầu ra:
Mã:
chmod: changing permissions of ‘file1’: Operation not permitted

Cách đặt lại thuộc tính trên tệp​

Bạn cũng có thể sử dụng lệnh chattr để đặt lại thuộc tính tệp mà chúng ta đã đặt ở bước trước. Để bất kỳ ai cũng có thể thay đổi và xóa tệp.

Bạn có thể sử dụng cờ -i để xóa thuộc tính khỏi tệp và thư mục:
Mã:
chattr -i file1 dir1
Bây giờ bạn có thể xác minh trạng thái của tệp và thư mục bằng lệnh sau lệnh:
Mã:
lsattr
Đầu ra:
Mã:
-------------e-- ./dir1
-------------e-- ./file1

Cho phép thêm dữ liệu mà không sửa đổi dữ liệu hiện có trên tệp​

Nếu bạn muốn cho phép tất cả người dùng chỉ thêm dữ liệu mà không sửa đổi hoặc thay đổi dữ liệu hiện có. Sau đó, bạn có thể sử dụng cờ +a trên tệp.

Hãy tạo một tệp mới với một số nội dung:
Mã:
echo "Hi How Are You" > newfile.txt
Tiếp theo, đặt thuộc tính +a trên tệp:
Mã:
chattr +a newfile.txt
Bây giờ, hãy thử thay thế nội dung đã tồn tại nội dung:
Mã:
echo "I am replacing" > newfile.txt
Bạn sẽ nhận được lỗi sau:
Mã:
bash: newfile.txt: Operation not permitted
Bây giờ, hãy thử thêm nội dung mới vào tệp hiện có:
Mã:
echo "This is new content" >> newfile.txt
Bây giờ, hãy xác minh nội dung của file:
Mã:
cat newfile.txt
Đầu ra:
Mã:
Hi How Are You
This is new content

Bảo vệ thư mục đệ quy​

Bạn có thể sử dụng cờ -R với +i để bảo vệ thư mục và các thư mục con đệ quy.

Đầu tiên, tạo một thư mục và các thư mục con bằng lệnh sau:
Mã:
mkdir -p test/dir1/dir2
mkdir -p test/dir3/dir4
mkdir -p test/dir5/dir6
Bây giờ, hãy bảo mật thư mục thử nghiệm và tất cả các thư mục con bằng lệnh sau:
Mã:
chattr -R +i test
Bây giờ, hãy thử xóa thư mục thử nghiệm bằng tất cả thư mục con:
Mã:
rm -rf test/
Bạn sẽ nhận được lỗi sau:
Mã:
rm: cannot remove ‘test/dir1/dir2’: Permission denied
rm: cannot remove ‘test/dir5/dir6’: Permission denied
rm: cannot remove ‘test/dir3/dir4’: Permission denied
Bây giờ, hãy đặt lại thuộc tính từ thư mục thử nghiệm bằng cách sử dụng lệnh sau lệnh:
Mã:
chattr -R -i test
Bây giờ bạn có thể xóa thư mục thử nghiệm cùng với tất cả các thư mục con.

Kết luận​

Trong hướng dẫn trên, bạn đã học cách bảo vệ các tệp và thư mục bằng lệnh chattr. Tôi hy vọng điều này sẽ giúp bạn bảo vệ các tệp cấu hình quan trọng của mình.
 
Back
Bên trên