Sử dụng chattr để bảo vệ tính toàn vẹn của file

Tác giả: 25/07/2022

Giới thiệu về chattr và sử dụng chattr để bảo vệ tính toàn vẹn của file

Giới thiệu về chattr

  • “chattr” là viết tắt của Change Attribute. Đây là câu lệnh cho phép bạn thay đổi thuộc tính của file giúp bảo vệ file khỏi bị xóa hoặc ghi đè nội dung, dù cho bạn có đang là user root đi nữa.
  • Cú pháp lệnh:
    chattr [operator] [flags] [filename]
  • Các operator:
    • +: Thêm thuộc tính cho file
    • -: Gỡ bỏ thuộc tính khỏi file
    • =: Giữ nguyên thuộc tính của life
  • Có nhiều flag, ở đây tôi sẽ giới thiệu các flag thường dùng là:
    • i: Flag này khiến file không thể rename, không thể tạo symlink, không thể thực thi, không thể write. Chỉ có user root mới set và unset được thuộc tính này.
    • a: Flag này khiến file không thể rename, không thể tạo symlink, không thể thực thi, chỉ có thể nối thêm nội dung vào file. Chỉ có user root mới set và unset được thuộc tính này.
    • d: file có thuộc tính này sẽ không được backup khi tiến trình dump chạy
    • S: Nếu một file có thuộc tính này bị sửa, thay đổi sẽ được cập nhật đồng bộ trên ổ cứng.
    • A: Khi file có thuộc tính được truy cập, giá trị atime của file sẽ không thay đổi

    Lưu ý: Tất cả các lệnh dưới đây đều chạy dưới quyền user root.

  • Trong bài viết này, tôi đã tạo trước một file demochattr.txt . Nội dung file như sau:

Cách thêm thuộc tính trên file

  •  Chúng ta thêm thuộc tính i (immutable) cho file.

  • Xem lệnh trên đã có hiệu lực chưa bằng cách dùng lệnh lsattr:

  • Bây giờ ta thử xóa file trên:

  • Có thể thấy rằng chúng ta không thể xóa hoặc thay đổi file trên.

Cách unset thuộc tính đã thêm trên file

  • Ta sử dụng operator -. Ví dụ tôi sẽ unset thuộc tính i trên file demochattr.txt

  • Sau khi bỏ thuộc tính i khỏi file, ta có thể thay đổi file một cách bình thường:

Chỉ cho phép thêm nội dung vào file

  • Chúng ta thêm thuộc tính a (append) cho file
  • Thử sửa nội dung file này:

Có thể thấy là không sửa được nội dung.

  • Ta có thể gỡ bỏ thuộc tính này với lệnh

Kết luận

  • chattr là một giải pháp hoàn hảo để bảo vệ tính toàn vẹn của file.

Trả lời