Umask hoạt động như một tập hợp các quyền mà các ứng dụng không thể thiết lập trên các tệp. Đó là mặt nạ tạo chế độ tệp cho các quy trình và không thể được đặt cho chính các thư mục. Hầu hết các ứng dụng sẽ không tạo các tệp với quyền thực thi được đặt, do đó chúng sẽ có mặc định 666
, sau đó được sửa đổi bằng ô.
Vì bạn đã đặt ô để loại bỏ các bit đọc / ghi cho chủ sở hữu và các bit đọc cho người khác, một mặc định như 777
trong các ứng dụng sẽ dẫn đến quyền của tệp 133
. Điều này có nghĩa là bạn (và những người khác) có thể thực thi tệp và những người khác sẽ có thể ghi vào nó.
Nếu bạn muốn làm cho các tệp không được đọc / ghi / thực thi bởi bất kỳ ai trừ chủ sở hữu, bạn nên sử dụng một ô như 077
để tắt các quyền đó cho nhóm và những người khác.
Ngược lại, một ô 000
sẽ làm cho các thư mục mới được tạo có thể đọc được, có thể ghi và có thể hạ xuống cho mọi người (các quyền sẽ được 777
). Một cái ô như vậy rất không an toàn và bạn không bao giờ nên đặt ô đó thành 000
.
Ô mặc định trên Ubuntu 022
có nghĩa là mọi người mới có thể đọc được các tệp mới, nhưng chỉ có thể ghi bởi chủ sở hữu:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-r--r-- 1 user user 0 Apr 1 19:15 new-file-name
Bắt đầu trong Ubuntu Oneiric (11.10), ô mặc định được nới lỏng 002
, giúp mở rộng quyền truy cập ghi vào nhóm của chủ sở hữu:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw-rw-r-- 1 user user 0 Apr 1 19:15 new-file-name
Xem và sửa đổi ô
Để xem cài đặt ô hiện tại của bạn, hãy mở một thiết bị đầu cuối và chạy lệnh:
umask
Để thay đổi cài đặt ô của vỏ hiện tại thành một thứ khác, giả sử 077, chạy:
umask 077
Để kiểm tra xem cài đặt này có hoạt động hay không, bạn có thể tạo một tệp mới (quyền truy cập tệp của tệp hiện tại sẽ không bị ảnh hưởng) và hiển thị thông tin về tệp, chạy:
user@computer:~$ touch new-file-name
user@computer:~$ ls -dl new-file-name
-rw------- 1 user user 0 Apr 1 19:14 new-file-name
Cài đặt umask được kế thừa bởi các quy trình bắt đầu từ cùng một vỏ. Ví dụ: khởi động trình soạn thảo văn bản GEdit bằng cách thực thi gedit
trong thiết bị đầu cuối và lưu tệp bằng gedit. Bạn sẽ nhận thấy rằng tệp mới được tạo bị ảnh hưởng bởi cùng cài đặt ô như trong thiết bị đầu cuối.
Trường hợp sử dụng: hệ thống nhiều người dùng
Nếu bạn đang ở trên một hệ thống được chia sẻ bởi nhiều người dùng, mong muốn những người khác không thể đọc các tệp trong thư mục chính của bạn. Đối với điều đó, một umask là rất hữu ích. Chỉnh sửa ~/.profile
và thêm một dòng mới với:
umask 007
Bạn cần phải đăng nhập lại để thay đổi ô này ~/.profile
để có hiệu lực. Tiếp theo, bạn cần thay đổi quyền truy cập tệp hiện có của các tệp trong thư mục chính của bạn bằng cách xóa bit đọc, ghi và thực thi cho thế giới. Mở một thiết bị đầu cuối và thực hiện:
chmod -R o-rwx ~
Nếu bạn muốn cài đặt ô này được áp dụng cho tất cả người dùng trên hệ thống, bạn có thể chỉnh sửa tệp hồ sơ toàn hệ thống tại /etc/profile
.
app_mode 666 rw- rw- rw-
umask 644 --0 -00 -00
file_mode 022 --- -w- -w-