Câu trả lời:
Tôi tin rằng điều này bắt nguồn từ 2 ý tưởng, mặc dù tôi có thể sai.
Ban đầu trong quyền phát triển unix đã mở rộng. Trước thời đại bảo mật, ý tưởng tạo một tệp chỉ có thể đọc / ghi / thực thi được bởi một số cá nhân là không cần thiết. Vì vậy, sự tiến triển tự nhiên từ quan điểm đó sẽ là lấy ý tưởng về các quyền và hạn chế chúng. Thay vì lấy giá trị 0 của các quyền và thêm vào chúng.
Lý do khác sẽ là ý tưởng rằng một từ chối cụ thể mang lại kết quả chính xác hơn trong hầu hết các trường hợp sau đó cho phép được chỉ định. Các tình huống khác nhau gọi cho các nhu cầu khác nhau. Ví dụ: quyền thư mục mặc định là: 755
trong đó quyền truy cập tệp mặc định là644
Nếu bạn đặc biệt cho phép thực thi chẳng hạn, thì điều đó sẽ phải dịch sang cả thư mục và tệp. Sau đó, bạn sẽ phải đối mặt với sự lựa chọn một trong hai thư mục không đi kèm với thực thi được kích hoạt, hoặc các tệp làm. Tuy nhiên, thư mục cần thực thi được kích hoạt để hoạt động. như vậy, thay vào đó, bạn đưa ra lựa chọn loại bỏ các quyền bổ sung, thay vì thêm các quyền cụ thể.
Với một ô 0000
, bạn vẫn kết thúc mà không thực thi quyền trên một tệp bình thường, nếu bạn làm điều ngược lại, sẽ khó khăn hơn để thiết kế theo cách đó.
umask
không chỉ định quyền trên các tệp được tạo bởi creat (2) và mở (2). Nó chỉ xác định những bit nào sẽ bị tắt một cách cưỡng bức , để ngăn chặn các chương trình bỏ qua bảo mật khỏi việc tạo lỗ hổng.
Một quy ước CNTT thông thường đề cập đến các mặc định và các ứng dụng CNTT không thay đổi với các số 0
. Ở đây, umask = 0 nói rằng các chế độ sau creat (2) hoàn toàn không nên thay đổi và các chương trình sẽ tạo ra các tệp có cùng quyền chính xác như được tạo bởi creat (name, mode ). Khi umask có một bit được đặt, nó sẽ xóa bit quyền tương ứng cho các tệp được tạo (nghĩa là có một số thay đổi so với logic của chương trình). Đó là lý do tại sao logic tiêu cực này.
setmask
là một lệnh có sẵn trong UNOS (từ năm 1980).
Vì thời gian dài hơn, umask
lệnh cung cấp cho bạn các tính năng tương tự.
Gọi:
umask -S
để có được mặt nạ đảo ngược như một chế độ tượng trưng như chmod.
umask u=rwx,g=rx,o=rx
để có được tương đương uask 022
.
Vì vậy, mong muốn của bạn đã được thực hiện.