Hệ thống tệp được lưu trữ trên đĩa không lưu trữ quyền truy cập tệp, nhưng trình điều khiển hệ thống tệp phải cung cấp chúng cho hệ điều hành vì chúng là một phần không thể thiếu của khái niệm hệ thống tệp Unix và giao diện gọi hệ thống không có cách nào để trình bày rằng các quyền đó là còn thiếu.
Cũng xem xét điều gì sẽ xảy ra nếu một tập tin không có bất kỳ bit quyền nào cả? Nó sẽ giống như 0777
, tức là truy cập vào tất cả; hoặc giống như 0000
, tức là không có quyền truy cập cho bất cứ ai? Nhưng cả hai đều là quyền của tập tin, vậy tại sao không hiển thị chúng? Hoặc làm một cái gì đó hữu ích hơn và có một cách để thiết lập một số quyền hợp lý.
Vì vậy, trình điều khiển giả mạo một số quyền, cùng một quyền cho tất cả các tệp. Các quyền cùng với chủ sở hữu và nhóm của tệp có thể được cấu hình tại thời điểm gắn kết. Chúng được mô tả trong phần "Tùy chọn gắn kết cho chất béo" trong trang người đàn ông gắn kết (8) :
Tùy chọn gắn kết cho chất béo
(Lưu ý: chất béo không phải là một hệ thống tệp riêng biệt, mà là một phần chung của các hệ thống tệp msdos, umsdos và vfat.)
uid=value
và gid=value
Đặt chủ sở hữu và nhóm của tất cả các tệp. (Mặc định: UID và GID của quy trình hiện tại.)
umask=value
Đặt ô (bitmask của các quyền không có). Mặc định là ô của quy trình hiện tại. Giá trị được đưa ra trong bát phân.
dmask=value
Đặt ô chỉ áp dụng cho các thư mục. Mặc định là ô của quy trình hiện tại. Giá trị được đưa ra trong bát phân.
fmask=value
Đặt ô chỉ áp dụng cho các tệp thông thường. Mặc định là ô của quy trình hiện tại. Giá trị được đưa ra trong bát phân.
Lưu ý rằng các quyền được trình bày dưới dạng mặt nạ, vì vậy các quyền cuối cùng là phủ định của mặt nạ. fmask=0133
sẽ dẫn đến tất cả các tệp có quyền 0644
, hoặc rw-r--r--
.
Ngoài ra, mặc định được kế thừa từ quá trình gọi mount()
, vì vậy nếu bạn gọi mount
từ dòng lệnh, shell umask
sẽ được áp dụng.