Trình tính CHMOD giúp bạn nhanh chóng xác định và thiết lập chính xác quyền truy cập cho tệp và thư mục trong các hệ thống giống Unix (Linux, macOS, BSD). Công cụ chuyển đổi quyền giữa định dạng ký hiệu và số (bát phân), hiển thị trực quan quyền truy cập và tạo các lệnh sẵn sàng sử dụng trong terminal.
Điều này đặc biệt quan trọng đối với quản trị máy chủ, triển khai ứng dụng web, pipeline CI/CD, container và hệ thống lưu trữ.
Quyền CHMOD là gì?
Trong hệ thống Unix, quyền truy cập vào tệp được xác định cho ba nhóm người dùng:
Người dùng (User — u) — chủ sở hữu tệp hoặc người dùng được chỉ định.
Nhóm (Group — g) — những người dùng thuộc nhóm của tệp.
Khác (Others — o) — tất cả người dùng còn lại trong hệ thống.
Mỗi nhóm có thể có ba loại quyền (r, w, x):
Quyền | Ký hiệu | Bát phân | Đối với tệp | Đối với thư mục |
|---|
Đọc | r | 4 | Đọc nội dung tệp | Liệt kê nội dung thư mục |
Ghi | w | 2 | Sửa đổi tệp | Tạo, xóa, đổi tên tệp |
Thực thi | x | 1 | Chạy như chương trình/script | Vào thư mục (cd) và truy cập nội dung bên trong |
Nếu không có quyền thực thi (x), một thư mục gần như không thể truy cập — ngay cả khi đã có quyền đọc (r).
Tổng các giá trị xác định số quyền cuối cùng cho mỗi nhóm người dùng.
Bảng tham chiếu giá trị quyền
Mức truy cập | Ký hiệu | Tính toán | Bát phân |
|---|
Toàn quyền | rwx | 4+2+1 | 7 |
Đọc & ghi | rw- | 4+2 | 6 |
Đọc & thực thi | r-x | 4+1 | 5 |
Chỉ đọc | r-- | 4 | 4 |
Ghi & thực thi | -wx | 2+1 | 3 |
Chỉ ghi | -w- | 2 | 2 |
Chỉ thực thi | --x | 1 | 1 |
Không có quyền | --- | 0 | 0 |
Các thiết lập quyền phổ biến
Trường hợp sử dụng | Ký hiệu | Bát phân |
|---|
Toàn quyền (KHÔNG khuyến nghị) | rwxrwxrwx | 777 |
Thư mục dùng chung theo nhóm | rwxrwxr-x | 775 |
Tệp dùng chung theo nhóm | rw-rw-r-- | 664 |
Thư mục và script riêng tư | rwx------ | 700 |
Tệp riêng tư (khóa SSH, mật khẩu) | rw------- | 600 |
Thư mục & script thực thi | rwxr-xr-x | 755 |
Tệp web tiêu chuẩn (HTML, CSS, hình ảnh) | rw-r--r-- | 644 |
Tùy chọn định dạng đầu ra
Khi chạy lệnh chmod, bạn có thể kiểm soát cách hiển thị kết quả:
Verbose (-v) — hiển thị chi tiết các thay đổi cho từng tệp được xử lý.
Changes (-c) — chỉ hiển thị các tệp có quyền thực sự thay đổi.
Silent (-f) — ẩn thông báo lỗi (ví dụ: không có quyền truy cập hoặc tệp không tồn tại).
Default — chế độ mặc định, chỉ hiển thị các thông báo quan trọng (như lỗi), không hiển thị chi tiết các thao tác thành công.
Tùy chọn áp dụng quyền
Các thiết lập này kiểm soát cách và nơi quyền được áp dụng:
Recursive (-R) — áp dụng quyền cho thư mục và toàn bộ nội dung bên trong, bao gồm thư mục con, tệp và liên kết tượng trưng (hành vi có thể khác nhau tùy hệ thống).
Reference File (--reference=FILE_NAME) — sao chép quyền từ một tệp hiện có thay vì chỉ định chế độ số.
Các bit quyền đặc biệt:
Setuid (+s cho chủ sở hữu) — chương trình thực thi chạy với quyền của chủ sở hữu tệp thay vì người dùng đã khởi chạy.
Setgid (+g) — hành vi phụ thuộc vào loại đối tượng: Đối với tệp (chương trình chạy với quyền của nhóm tệp), Đối với thư mục (các tệp mới tạo sẽ kế thừa nhóm của thư mục, giúp làm việc nhóm dễ dàng hơn).
Sticky Bit (+t) — chủ yếu dùng cho thư mục dùng chung. Cho phép người dùng chỉ xóa hoặc đổi tên các tệp mà họ sở hữu (thường dùng cho /tmp).