Lệnh chattr trong Linux là công cụ mạnh giúp thay đổi thuộc tính của file hoặc folder để bảo vệ chúng khỏi bị xóa, chỉnh sửa hay ghi đè ngoài ý muốn. Bài viết sẽ giới thiệu tổng quan về lệnh chattr, bao gồm cú pháp và các thuộc tính phổ biến như immutable (+i) và append-only (+a). Ngoài ra, mình sẽ trình bày 5 ví dụ thực tế giúp bạn hiểu cách bảo vệ file hệ thống, folder và dữ liệu quan trọng hiệu quả.
Điểm chính cần nắm
- Lệnh chattr là gì?: Giới thiệu khái niệm và chức năng chính của lệnh chattr trong Linux.
- Cú pháp lệnh chattr: Trình bày cách sử dụng và các tham số cơ bản của lệnh chattr.
- Ví dụ lệnh chattr phổ biến: Minh họa các lệnh chattr thường dùng trong thực tế.
- Các thuộc tính phổ biến của chattr: Tổng hợp các thuộc tính đặc biệt thường áp dụng với lệnh chattr.
- 5 ví dụ dùng chattr hiệu quả: Hướng dẫn 5 trường hợp thực tế sử dụng lệnh chattr để bảo vệ file và folder.
- Vietnix – Giải pháp VPS và hosting tốc độ cao, hiệu suất ổn định: Giới thiệu về dịch vụ VPS và hosting chất lượng của Vietnix.
- FAQ: Giải đáp các câu hỏi thường gặp liên quan đến lệnh chattr và ứng dụng.
Lệnh chattr
là gì?
Lệnh chattr
(change attribute) là một công cụ dòng lệnh trong Linux dùng để thiết lập hoặc gỡ bỏ các thuộc tính đặc biệt cho file và folder. Mục đích chính là để bảo vệ dữ liệu khỏi bị xóa, sửa đổi hoặc ghi đè ngoài ý muốn, kể cả khi bạn đang sử dụng tài khoản root
.

Lệnh này hoạt động tốt trên các hệ thống file gốc của Linux như ext2
, ext3
, ext4
, btrfs
,… Tuy nhiên, không phải tất cả các thuộc tính đều được hỗ trợ trên hệ thống file không gốc (non-native filesystem). Khi một file hoặc folder được gán thuộc tính bằng chattr
, bạn không thể xóa, đổi tên, hoặc sửa đổi nó, ngay cả khi có đầy đủ quyền truy cập.
Tác dụng chính của chattr
:
- Ngăn người dùng (kể cả root) xóa hoặc sửa đổi file.
- Chỉ cho phép ghi thêm nội dung mà không được sửa phần cũ.
- Bảo vệ file cấu hình hệ thống khỏi bị thay đổi.
Cú pháp lệnh chattr
chattr [tùy_chọn] [toán_tử][thuộc_tính] [đường_dẫn_file_hoặc_thư_mục]
Giải thích cú pháp:
tùy_chọn
: Các tùy chọn hỗ trợ như:-R
: Áp dụng đệ quy cho folder và tất cả file con.-V
: Hiển thị chi tiết quá trình thực thi.
toán_tử
:+
: Thêm thuộc tính.-
: Gỡ thuộc tính.=
: Gán chính xác thuộc tính (loại bỏ tất cả thuộc tính khác).
thuộc_tính
: Các ký hiệu đại diện cho thuộc tính cần thiết lập (xem bảng bên dưới).đường_dẫn_file_hoặc_thư_mục
: Đường dẫn đến file hoặc folder cần chỉnh sửa thuộc tính.
Ví dụ lệnh chattr
phổ biến
Lệnh | Mô tả |
---|---|
chattr +i file.txt | Đặt thuộc tính immutable – không thể sửa, xóa hoặc đổi tên file. |
chattr -i file.txt | Gỡ bỏ thuộc tính immutable. |
chattr +a log.txt | Chỉ cho phép ghi thêm (append-only). |
chattr -a log.txt | Gỡ chế độ ghi thêm. |
chattr -R +i myfolder/ | Đặt immutable cho toàn bộ folder và file con bên trong. |
Các thuộc tính phổ biến của chattr
Thuộc tính | Ý nghĩa |
---|---|
A | Không cập nhật thời gian truy cập (atime) khi file được đọc. |
S | Ghi dữ liệu đồng bộ xuống đĩa mỗi khi file bị thay đổi. |
a | Chỉ cho phép ghi thêm, không thể chỉnh sửa nội dung cũ. |
i | Immutable – không thể sửa, xóa, đổi tên, tạo symlink (chỉ root mới thay đổi được). |
j | Ghi dữ liệu vào journal của ext3 trước khi cập nhật vào file. |
t | Vô hiệu hóa tail-merging. |
d | File sẽ không được sao lưu khi chạy lệnh dump . |
u | Giữ lại dữ liệu khi file bị xóa, có thể khôi phục lại. |
Lưu ý
Chỉ người dùng
root
hoặc có quyềnsudo
mới thực hiện được lệnhchattr
.Để xem các thuộc tính đã gán cho file, dùng lệnh: lsattr [tên_file]
5 ví dụ dùng chattr
hiệu quả
- 1. Bảo vệ file khỏi bị xóa hoặc chỉnh sửa
- 2. Bỏ bảo vệ để chỉnh sửa lại
- 3. Bảo vệ file hệ thống như /etc/passwd, /etc/shadow
- 4. Chỉ cho phép ghi thêm vào file
- 5. Bảo vệ toàn bộ thư mục (đệ quy)
1. Bảo vệ file khỏi bị xóa hoặc chỉnh sửa
Để ngăn người dùng xóa hoặc thay đổi file hay folder, bạn có thể sử dụng thuộc tính immutable bằng lệnh chattr +i
. Khi file hoặc folder được gán thuộc tính này, kể cả root cũng không thể xóa, đổi tên hay sửa file đó cho đến khi gỡ thuộc tính.
Ví dụ với folder demo
và file important_file.conf
. Trước khi gán thuộc tính, kiểm tra trạng thái file bằng lệnh:
ls -l
Chạy lệnh gán thuộc tính immutable:
chattr +i demo/
chattr +i important_file.conf
Lưu ý
Chỉ người dùng root hoặc có quyền sudo mới thực hiện được thao tác này.
Sau khi gán thuộc tính, dùng lệnh lsattr
để kiểm tra:
lsattr
Kết quả sẽ cho thấy ký hiệu i
ở cột thuộc tính:
----i----------- ./demo
----i----------- ./important_file.conf
Khi thuộc tính này đã được thiết lập, mọi nỗ lực xóa, đổi tên hoặc thay đổi quyền của file sẽ bị từ chối, ví dụ:
rm -rf demo/
# → rm: cannot remove 'demo/': Operation not permitted
mv demo/ demo_backup
# → mv: cannot move 'demo/' to 'demo_backup': Operation not permitted
chmod 755 important_file.conf
# → chmod: changing permissions of 'important_file.conf': Operation not permitted
Để gỡ thuộc tính này, chỉ cần dùng chattr -i
:
chattr -i demo/
chattr -i important_file.conf
2. Bỏ bảo vệ để chỉnh sửa lại
Để gỡ bỏ thuộc tính immutable trên file hoặc folder, dùng lệnh chattr -i
kèm tên file hoặc folder. Ví dụ:
chattr -i demo/ important_file.conf
Sau khi gỡ thuộc tính, kiểm tra lại bằng lệnh lsattr
sẽ thấy ký hiệu i
đã biến mất, nghĩa là file và folder đã có thể chỉnh sửa hoặc xóa bình thường:
lsattr
---------------- ./demo
---------------- ./important_file.conf
Lúc này, bạn có thể xóa hoặc thay đổi file, folder thoải mái, ví dụ:
rm -rf *
ls -l
total 0
3. Bảo vệ file hệ thống như /etc/passwd
, /etc/shadow
Các file /etc/passwd
và /etc/shadow
chứa thông tin người dùng hệ thống rất quan trọng. Để bảo vệ các file hệ thống quan trọng như /etc/passwd
và /etc/shadow
khỏi việc xóa hoặc chỉnh sửa nhầm, bạn có thể đặt thuộc tính immutable cho chúng bằng lệnh:
chattr +i /etc/passwd
chattr +i /etc/shadow
Khi thuộc tính immutable được thiết lập, ngay cả người dùng root cũng không thể chỉnh sửa hoặc xóa các file này. Thậm chí, việc tạo tài khoản người dùng mới sẽ bị lỗi vì không thể ghi vào /etc/passwd
:
useradd tecmint
# useradd: cannot open /etc/passwd
4. Chỉ cho phép ghi thêm (append-only) mà không được sửa nội dung cũ
Nếu bạn chỉ muốn cho phép người dùng ghi thêm dữ liệu vào file mà không được phép sửa đổi nội dung cũ, bạn có thể dùng thuộc tính a
(append-only) với lệnh chattr như sau:
chattr +a example.txt
Sau khi thiết lập, file example.txt
chỉ được mở để ghi thêm dữ liệu ở cuối file (append mode) mà không thể sửa phần nội dung đã có. Kiểm tra thuộc tính với lệnh:
lsattr example.txt
# kết quả sẽ hiển thị: -----a---------- example.txt
Sau khi thiết lập, file example.txt
chỉ được mở để ghi thêm dữ liệu ở cuối file (append mode) mà không thể sửa phần nội dung đã có. Kiểm tra thuộc tính với lệnh:
lsattr example.txt
# kết quả sẽ hiển thị: -----a---------- example.txt
Nếu muốn gỡ thuộc tính này, dùng:
chattr -a example.txt
Khi thuộc tính a
được bật, nếu bạn cố thay thế nội dung cũ bằng cách ghi đè file sẽ nhận được lỗi:
echo "replace content on file." > example.txt
# -bash: example.txt: Operation not permitted
Tuy nhiên, bạn vẫn có thể thêm dòng mới vào cuối file mà không bị lỗi:
echo "replace content on file." >> example.txt
cat example.txt
5. Bảo vệ toàn bộ thư mục (đệ quy)
Để bảo vệ toàn bộ folder cùng tất cả file bên trong, bạn dùng tùy chọn -R
(đệ quy) kết hợp với flag +i
như sau:
chattr -R +i myfolder
Sau khi thiết lập, nếu thử xóa folder hoặc file bên trong sẽ bị từ chối với lỗi:
rm -rf myfolder/
# rm: cannot remove 'myfolder/': Operation not permitted
Để gỡ thuộc tính immutable cho folder cùng toàn bộ file con, dùng:
chattr -R -i myfolder
Vietnix – Giải pháp VPS và hosting tốc độ cao, hiệu suất ổn định
Vietnix cung cấp dịch vụ VPS và hosting chất lượng cao, tối ưu tốc độ truy cập cùng hiệu suất hoạt động ổn định. Với hệ thống máy chủ hiện đại và bảo mật tiên tiến, Vietnix giúp website và ứng dụng của bạn luôn vận hành mượt mà, an toàn trước mọi nguy cơ. Đội ngũ kỹ thuật chuyên nghiệp, tận tâm của Vietnix luôn sẵn sàng hỗ trợ 24/7, đảm bảo giải quyết nhanh chóng mọi yêu cầu của khách hàng.
Chọn Vietnix, bạn sẽ được trải nghiệm dịch vụ lưu trữ linh hoạt, phù hợp với mọi quy mô doanh nghiệp và nhu cầu phát triển, đồng thời hưởng lợi từ mạng lưới hạ tầng hiện đại và đường truyền băng thông rộng lớn.
Thông tin liên hệ:
- Website: https://vietnix.vn/
- Hotline: 1800 1093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, TP HCM.
Câu hỏi thường gặp
Cách sử dụng lệnh chattr trên Ubuntu và CentOS có khác gì không?
Làm sao để cài đặt lệnh chattr trên Ubuntu?
Lệnh chattr có trong gói e2fsprogs, cài bằng: sudo apt install e2fsprogs
Lệnh chattr +i có tác dụng gì?
Thuộc tính +i (immutable) giúp khóa file, không thể sửa, xóa, đổi tên ngay cả với root.
Lệnh chattr trong Linux là gì và dùng để làm gì?
chattr dùng để thay đổi thuộc tính đặc biệt của file hoặc folder, giúp bảo vệ file khỏi bị xóa hoặc chỉnh sửa.
Lệnh chattr +a khác với +i như thế nào?
+a cho phép file chỉ được ghi thêm (append), không thể sửa hoặc xóa nội dung cũ; +i khóa file hoàn toàn.
Có thể sử dụng chattr để bảo vệ file hệ thống nào?
Thường dùng cho /etc/passwd, /etc/shadow hoặc các file config quan trọng khác.
Lệnh chattr có giúp bảo vệ file khỏi xóa bằng rm -rf không?
Có, nếu file được set +i thì lệnh rm -rf cũng không thể xóa được file hoặc folder đó.
Thuộc tính chattr có bị mất sau khi reboot hệ thống không?
Không, thuộc tính chattr được lưu trực tiếp trên hệ thống file và giữ nguyên qua khởi động lại.
Có thể thiết lập chattr cho file trong folder mạng (NFS) không?
NFS không hỗ trợ đầy đủ thuộc tính chattr như hệ thống file cục bộ, nên không đảm bảo.
Lời kết
Việc sử dụng lệnh chattr giúp tăng cường bảo mật, đảm bảo tính toàn vẹn của dữ liệu và hạn chế rủi ro thao tác sai trên hệ thống Linux. Nếu bạn gặp khó khăn hoặc cần tư vấn thêm về cách áp dụng lệnh chattr phù hợp, đừng ngần ngại liên hệ để được hỗ trợ chi tiết. Ngoài ra, bạn cũng có thể tham khảo thêm các bài viết và hướng dẫn để khai thác tối đa lợi ích của công cụ này. Hãy bắt đầu bảo vệ hệ thống ngay hôm nay để vận hành an toàn, ổn định hơn.
Mọi người cũng xem: