Tính chmod
Đặt quyền tệp Unix bằng các ô đánh dấu, một số bát phân như 755, hoặc chuỗi rwxr-xr-x, và nhận các lệnh chmod tương ứng.
Chạy hoàn toàn trong trình duyệt của bạn
- Dạng số
- Dạng ký hiệu
Mode này cho phép những gì
| Đối tượng | Với tệp | Với thư mục |
|---|
Hoạt động trên chín bit quyền cùng setuid, setgid và sticky, như chmod POSIX. Công cụ không đọc tệp thật, không hiển thị quyền sở hữu, và không bao gồm ACL, thuộc tính tệp hay umask. Mode bát phân cần 3 hoặc 4 chữ số.
Cách tính mode chmod
- Đánh dấu các ô cho chủ sở hữu, nhóm và những người khác, hoặc chọn một mẫu phổ biến như 644 hoặc 755. Bạn cũng có thể nhập số bát phân hoặc chuỗi chín ký tự và các ô sẽ thay đổi theo.
- Xem phần tóm tắt bằng lời về những gì mỗi lớp được phép làm với một tệp và với một thư mục, và đọc cảnh báo nếu có.
- Sao chép lệnh
chmoddạng số hoặc dạng ký hiệu. Hãy đổi tên tệp trước nếu muốn có lệnh sẵn sàng để dán.
Quyền tệp Unix được lưu như thế nào
Mỗi tệp và thư mục trên hệ thống kiểu Unix mang một mode ngắn: ba bit quyền (đọc, ghi, thực thi) cho mỗi lớp trong ba lớp (người dùng sở hữu, nhóm sở hữu, mọi người còn lại), cộng ba bit đặc biệt. Đó là mười hai bit, và số bát phân đơn giản là các bit đó viết theo từng nhóm ba, vì vậy các chữ số chỉ lên đến 7. Dạng chín ký tự từ ls -l hiển thị cùng các bit đó dưới dạng chữ cái.
Đọc, ghi và thực thi có ý nghĩa khác nhau trên một thư mục. Đọc cho phép liệt kê các tên bên trong, ghi cho phép thêm, đổi tên và xóa các mục, còn thực thi cho phép bước vào thư mục và truy cập mọi thứ theo tên. Một thư mục có quyền đọc nhưng không có thực thi sẽ hiển thị các tên nhưng từ chối truy cập mọi thứ bên trong, một nguồn gây lỗi quyền khó hiểu thường gặp.
Các bit đặc biệt thay đổi cách một mode hoạt động. Setuid và setgid khiến chương trình chạy với quyền của chủ sở hữu hoặc nhóm của tệp thay vì quyền của người gọi, điều này rất mạnh nên bị bỏ qua với shell script trên hầu hết hệ thống. Setgid trên thư mục khiến tệp mới kế thừa nhóm của nó, và bit sticky trên thư mục ngăn người dùng xóa tệp của nhau. Nếu không chắc một tệp cần mode nào, hãy bắt đầu chặt chẽ và chỉ thêm những gì thông báo lỗi yêu cầu.
Mẹo
- Nhị phân và bát phân là cùng các bit được viết khác đi; Chuyển đổi hệ cơ số cho thấy 755 là 111 101 101.
- Lên lịch cho cron job chạy một script bạn vừa cho phép thực thi? Hãy tạo lịch bằng Tạo biểu thức cron.
- Tiếp theo là tính dải mạng? Hãy thử Tính subnet.
Câu hỏi thường gặp
Số bát phân hoạt động như thế nào?
Mỗi chữ số cộng các quyền đọc (4), ghi (2) và thực thi (1) cho một lớp, theo thứ tự chủ sở hữu, nhóm, những người khác. Vì vậy 7 là đọc, ghi và thực thi, 5 là đọc và thực thi, còn 4 chỉ đọc. 755 cho chủ sở hữu mọi quyền và những người còn lại quyền đọc và thực thi. Chữ số thứ tư tùy chọn ở phía trước chứa setuid (4), setgid (2) và sticky (1).
Các chữ s, S, t và T có nghĩa là gì?
Chúng thay thế chữ x ở vị trí của chủ sở hữu, nhóm hoặc những người khác. Chữ thường nghĩa là bit đặc biệt được bật và quyền thực thi cũng bật; chữ hoa nghĩa là bit đặc biệt được bật nhưng quyền thực thi tắt, thường là một sai sót. Vì vậy 4755 là rwsr-xr-x và 4644 là rwSr--r--.
Khác nhau giữa 644 và 755 là gì?
644 là mode thường dùng cho tệp thông thường: chủ sở hữu đọc và ghi được, mọi người khác chỉ đọc. 755 thêm quyền thực thi cho tất cả, thứ mà chương trình, script và thư mục cần. Thư mục cần bit thực thi để bất kỳ ai vào được.
Vì sao 777 bị coi là nguy hiểm?
Nó cho phép mọi người dùng trên máy, và bất kỳ chương trình nào chạy dưới quyền họ, thay đổi hoặc thay thế tệp. Máy chủ web được yêu cầu ghi vào đâu đó không cần điều đó: cấp quyền sở hữu cho đúng người dùng hoặc nhóm và dùng 775 hoặc 770 giải quyết hầu hết lỗi quyền mà không mở tệp cho tất cả mọi người.
Bit sticky làm gì?
Trên một thư mục, nó ngăn người dùng xóa hoặc đổi tên các tệp không thuộc về họ, dù họ ghi được vào thư mục đó. Đó là lý do các thư mục dùng chung như /tmp có mode 1777. Trên Linux hiện đại, nó không có tác dụng với tệp thông thường.
Công cụ này có thay đổi gì trên máy tính của tôi không?
Không. Nó chỉ tính ra con số và các lệnh. Những gì bạn nhập không được gửi đi đâu, và bạn tự chạy các lệnh trong terminal.