sự khác biệt giữa umask và chmod


13

Tôi hoàn toàn bối rối giữa umask và chmod. Cả hai đều được sử dụng để cấp quyền cho các tập tin. Nhưng nơi chính xác là sự khác biệt và khi sử dụng chúng.

Tôi đã đọc các tài liệu trực tuyến nhưng cả hai đều giống tôi.

umask: umask được sử dụng để đặt quyền truy cập tệp mặc định. Các quyền này sẽ được sử dụng cho tất cả các tệp tiếp theo trong quá trình tạo. chmod: được sử dụng để thay đổi quyền truy cập tập tin và thư mục.

Theo hiểu biết của tôi nếu ví dụ tập tin test.doc được tạo.

Theo mặc định, unix cung cấp cho tập tin mã 022.

Bây giờ khi tôi thay đổi nó thành chmod 666 test.doc tôi có thể thay đổi cấp phép của tệp này.

Bây giờ nếu tôi sử dụng umask 666 cho cùng một tệp.

Có gì khác nhau khi tôi sử dụng chmod 666 và umask 666


2
umaskđặt một biến môi trường tự động đặt quyền cho tệp cho các tệp mới được tạo . chmodthay đổi quyền của các tập tin hiện có .
DavidPostill

1
@DavidPostill. Không, umaskkhông đặt "biến môi trường" Những gì nó làm là đặt mặt nạ tạo chế độ tệp của môi trường thực thi shell hiện tại.
fpmurphy

@ fpmurphy1 Cảm ơn bạn đã làm rõ :)
DavidPostill

Câu trả lời:


11

Sự khác biệt là umaskchỉ đòi hỏi các tập tin mới . Như bạn đã nói, umask đặt các quyền mặc định mà tệp / thư mục sẽ có trong thời gian tạo, nhưng sau đó umaskkhông ảnh hưởng đến chúng nữa.

chmodtuy nhiên, cần phải tạo tệp trước khi chạy.

Do đó, nếu bạn chạy umask, nó sẽ không có tác dụng gì đối với các tệp hiện có.


2
Bạn không thể sử dụng umasktrên một tập tin, nó không có fileđối số.
DavidPostill

Phải, viết lại phần đó.
nKn

4

umaskchmodthực sự rất khác với

  1. Một sự khác biệt quan trọng chưa được đề cập: chmodbộ, nhưng umask xóa (hạn chế) bit quyền. Đó là lý do tại sao nó được gọi là "mặt nạ" (như trong "bitmask").

  2. Như David đã viết , umasklà một cài đặt cấu hình (mức quy trình), do đó, nó không được áp dụng trên bất kỳ tệp cụ thể nào (trái ngược với chmod).

  3. Điều này đưa chúng ta đến một điểm quan trọng khác: umaskkhông giới hạn đối với các tệp. Nó cũng được áp dụng khi tạo thư mục. (Xem thêm ví dụ câu trả lời này .)

  4. Cũng quan trọng, chmodbản thân lệnh không bị ảnh hưởng bởi cấu hình hiện tại umask.

Bây giờ, với ví dụ của bạn về những gì sẽ umask 666làm:

Nó sẽ nói cho quá trình hiện tại (ví dụ vỏ của bạn) mà bất kỳ đối tượng hệ thống tập tin mới sẽ được tạo ra với R+ Wbit (4 + 2 = 6) loại bỏ (từ bất cứ quyền ngầm hay rõ ràng yêu cầu khi tạo). (Vì vậy, 666 không phải là một giá trị rất thực tế, vì nó chỉ cho phép các Xbit (thực thi) được đặt, nhưng đối với các tệp không thể đọc được ...)

Ví dụ:

$ touch foo; ls -la foo
-rw-r--r-- ... foo   <-- default permissions

$ umask 666
$ touch bar; ls -la bar
---------- ... bar   <-- perms. after the new umask (restriction) is set
$ mkdir foodir; ls -la | grep foodir
d--x--x--x ... dir   <-- not very practical for dirs, either

$ chmod 777 bar; ls -la bar
-rwxrwxrwx .... bar* <-- chmod happily ignores the current umask

$ umask 022
$ touch bong; ls -la bong
-rw-r--r-- ... bong  <-- (so, it seems this was the default umask)

$ chmod 666 bong; ls -la bong
-rw-rw-rw- ... bong  <-- no surprise of any kind here

0

UMASK = chmod 777 - quyền umask

umask 022 => 777 - 022 => chmod 755
umask 077 => 777 - 077 => chmod 700
umask 002 => 777 - 002 => chmod 775
umask 007 => 777 - 007 => chmod 770
umask 027 => 777 - 027 => chmod 750
umask 177 => 777 - 177 => chmod 600

Một cái gì đó như thế.


0

Quyền mặc định cho thư mục / tệp là umask 022 sau đó, thư mục được đặt theo mặc định với quyền 755 ( drwx-rw-rw) và tệp được đặt với 644 ( -rw-r--r--). Về cơ bản, bạn trừ đi giá trị bát phân của quyền mà bạn muốn từ 777 cho một thư mục và từ 666 cho một tệp. Vì vậy, từ ví dụ trên:

(directory) umask 022 => 777 - 022 = 755

(file) umask 022 => 666 - 022 = 644

Bạn có thể tìm thấy kết quả của umask octallệnh trong nguồn khi sử dụng umask , tùy thuộc vào bát phân và nếu đó là tệp hoặc thư mục.

Nguồn

Tuy nhiên , nếu bạn chmod 022 <file>cho một thư mục, bạn sẽ nhận được điều này: d----w--w-sẽ không có nhiều ý nghĩa.

Bên dưới, bạn sẽ tìm thấy một mô tả tuyệt vời về giá trị bát phân mà bạn có thể lấy ở đây bởi Somnath Muluk với các nguồn tuyệt vời.

N   Description                      ls   binary    
0   No permissions at all            ---  000
1   Only execute                     --x  001
2   Only write                       -w-  010
3   Write and execute                -wx  011
4   Only read                        r--  100
5   Read and execute                 r-x  101
6   Read and write                   rw-  110
7   Read, write, and execute         rwx  111
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.