Trong lịch sử tại sao lại là như vậy?


7

umask luôn luôn làm tôi vấp ngã Về mặt logic, tôi thích có một 'setmask' hơn, thay vào đó có các đối số kiểu chmod. Bất cứ ai cũng biết tại sao nó là như vậy?

Câu trả lời:


4

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à: 755trong đó 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 đó.


Liên quan, bạn có thể tìm thấy bằng sáng chế của Dennis Ritchie và Bell Lab để cải thiện quyền truy cập tệp trong USP 4135240, Bảo vệ nội dung tệp dữ liệu . Nó có từ năm 1973. Đây là một phần của Tóm tắt: "Một sự sắp xếp cải tiến để kiểm soát quyền truy cập vào tệp dữ liệu của người dùng máy tính. Các bit quyền truy cập được sử dụng trong nghệ thuật trước để chỉ ra các quyền cho chủ sở hữu tệp và người không biết đọc, ghi và thực thi nội dung tập tin ... "

2

umaskkhô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.


1

setmask là một lệnh có sẵn trong UNOS (từ năm 1980).

Vì thời gian dài hơn, umasklệ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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.