Giả sử mặt nạ mặc định là 0666. umask
0022 sẽ tạo mặt nạ mới 0644 (0666-0022 = 0644) có nghĩa là nhóm và những người khác có quyền đọc (không ghi hoặc thực thi).
Chữ số "phụ" (số đầu tiên = 0), chỉ định rằng không có chế độ đặc biệt.
Nếu chế độ bắt đầu bằng một chữ số, nó sẽ được hiểu là bát phân nếu không nó có nghĩa là tượng trưng.
0 là một chữ số, như là 1 (đối với bit dính) hoặc 6 (đối với SGID). Một lệnh như chmod
có thể được gọi bằng các phương thức khác, chẳng hạn như chmod ug+rw mydir
nơi bạn sẽ thêm quyền đọc và ghi cho người dùng và nhóm. Lưu ý rằng chế độ trong trường hợp này (ug + rw) không bắt đầu bằng một chữ số, do đó sẽ không được hiểu là bát phân mà là biểu tượng.
Xem en.wikipedia.org/wiki/Chmod#Symbolic_examples để biết về biểu tượng cũng như www.lifeaftercoffee.com/2007/03/20/special- allow -mode-in- linux- and- unix / để biết một chút về các chế độ đặc biệt.
Tôi không biết rằng bạn sẽ vạch mặt bit đầu tiên umask
, nhưng về mặt kỹ thuật bạn có thể. Nó sẽ giải thích tại sao bạn hầu như luôn xem nó là số không.
Tín dụng cho Pinkfloydx33
Chữ số đầu tiên của mặt nạ xử lý các quyền đặc biệt không phù hợp hoàn toàn với chủ sở hữu / nhóm / mô hình khác. Khi bốn chữ số được cung cấp cho một quyền, tệp đầu tiên đề cập đến các giá trị đặc biệt đó:
4000 = SUID
2000 = SGID
1000 = sticky bit
Bit SUID, viết tắt của ID-user-set, khiến chương trình thực thi chạy với id người dùng hiệu quả (uid) của chủ sở hữu - nói cách khác, bất kể ai thực thi nó, chương trình thực thi với quyền của chủ sở hữu. Điều này thường thấy trong các chương trình làm những việc đòi hỏi quyền root, nhưng được người dùng bình thường điều hành: passwd
là một ví dụ như vậy.
Bit SGID, viết tắt của ID nhóm-nhóm, rất giống nhau, nhưng chạy với id nhóm (gid) hiệu quả của chủ sở hữu.
Các bit dính phức tạp hơn một chút, nếu bạn muốn biết thêm thông tin về điều đó, bạn có thể đọc trang hướng dẫn sticky
.
Những bit này cũng có thể được sử dụng với các thư mục, nhưng ý nghĩa của chúng thay đổi.
Tôi không tin rằng bạn thực sự có thể thiết lập umask
để cho phép bạn bật bất kỳ bit bổ sung nào theo mặc định, nhưng có lẽ bạn sẽ không bao giờ muốn làm điều đó.
Tín dụng cho người dùng470379
man 2 umask
(cuộc gọi hệ thống tương ứng) "chỉ các bit cho phép tệpmask
được sử dụng". Trongbash
, umask 1000 tạo ra một lỗi: "số bát phân ngoài phạm vi". Vậy tại sao lại có thêm 0? Tôi nghĩ rằng nó chỉ để cho thấy rằng số là trong bát phân.