Công cụ làm gì
Máy tính chmod chuyển quyền tệp Unix và Linux giữa ba cách viết phổ biến: lưới ô đánh dấu đọc, ghi và thực thi, số bát phân như 755 và chuỗi ký hiệu như rwxr-xr-x. Nó cũng viết lệnh chmod tương ứng ở dạng bát phân và ký hiệu, giải thích ai được làm gì, và hỗ trợ các bit đặc biệt setuid, setgid và sticky. Mọi thứ chạy trong trình duyệt của bạn.
Cách dùng
- Đánh dấu các ô cho chủ sở hữu, nhóm và người khác, hoặc gõ chế độ vào ô nhập. Ô nhập chấp nhận dạng bát phân (
644,0644,4755), chuỗi kiểuls -l(rw-r--r--hoặc-rw-r--r--có loại tệp ở đầu) và biểu thức chmod nhưu=rwx,g=rx,o=haya+x. - Các ô đánh dấu và kết quả thay đổi theo những gì bạn gõ, còn khi bấm một ô, chế độ được viết lại theo cùng cách ghi.
- Đặt tên tệp trong Tùy chọn và bật Đệ quy (-R) nếu muốn áp dụng cho cả cây thư mục. Sao chép lệnh chỉ với một cú nhấp.
Các chế độ thường gặp
chmod 755 deploy.sh # rwxr-xr-x
chmod 644 index.html # rw-r--r--
chmod 600 ~/.ssh/id_ed25519 # rw-------
chmod 1777 /tmp # rwxrwxrwt
- 755 cho thư mục, script và chương trình: chủ sở hữu được sửa, mọi người được đọc và chạy.
- 644 cho tệp thông thường như trang web và hình ảnh.
- 600 cho tệp riêng tư như khóa SSH và tệp
.env: chỉ chủ sở hữu đọc được. SSH từ chối khóa mà người khác đọc được. - 700 cho thư mục riêng và 775/664 khi một nhóm người dùng chung một dự án.
Cách các con số hoạt động
Mỗi nhóm người dùng có một chữ số bát phân, là tổng của đọc = 4, ghi = 2 và thực thi = 1. Với thư mục, đọc là liệt kê tên bên trong, ghi là tạo và xóa tệp bên trong, còn thực thi là vào thư mục hoặc truy cập tệp trong đó.
Chữ số đầu tùy chọn chứa các bit đặc biệt: setuid = 4, setgid = 2, sticky = 1. Ở dạng ký hiệu, chúng thay cho chữ thực thi: s cho setuid và setgid, t cho sticky. Chữ S hoặc T viết hoa nghĩa là bit đặc biệt được bật nhưng không có quyền thực thi, hầu như luôn là nhầm lẫn.
Công cụ cũng hiển thị umask tương ứng, tức các bit mà umask mặc định bỏ đi khỏi 777 để ra chế độ. Umask 022 cho thư mục 755 và tệp 644.
Câu hỏi thường gặp
› chmod 755 nghĩa là gì?
Mỗi chữ số ứng với một nhóm người dùng: chủ sở hữu, nhóm và người khác. 7 = đọc (4) + ghi (2) + thực thi (1); 5 = đọc + thực thi. Vậy 755 cho chủ sở hữu toàn quyền, còn mọi người khác được đọc và chạy tệp, viết là rwxr-xr-x. Đây là chế độ thường dùng cho script và thư mục.
› 644 và 755 khác nhau thế nào?
644 (rw-r--r--) không có bit thực thi nên hợp với tệp thông thường như HTML, hình ảnh và cấu hình. 755 thêm quyền thực thi cho mọi người, điều mà chương trình cần để chạy và thư mục cần để có thể vào được.
› Vì sao chmod 777 là ý tồi?
777 cho mọi người dùng trên hệ thống quyền sửa hoặc thay thế tệp. Trên máy chủ web, bất kỳ tiến trình nào bị chiếm quyền cũng có thể ghi đè mã của bạn. Hãy sửa chủ sở hữu bằng chown, dùng 755 cho thư mục và 644 cho tệp.
› setuid, setgid và sticky bit là gì?
Chúng tạo thành chữ số bát phân thứ tư ở đầu. setuid (4) cho chương trình chạy dưới danh nghĩa chủ sở hữu, setgid (2) chạy dưới danh nghĩa nhóm hoặc khiến tệp mới trong thư mục kế thừa nhóm, còn sticky bit (1) ngăn người dùng xóa tệp của người khác trong thư mục dùng chung như /tmp. Trong kết quả ls, chúng hiện thành s và t ở vị trí thực thi.