ngụy biện
Có 2 lực lượng ở đây tại nơi làm việc. Đầu tiên là bit setgid được kích hoạt trên thư mục , folder
.
drwxr-s---. user group folder
Đó là s
trong gói các nhân vật ở đầu dòng này. Họ được nhóm lại như vậy:
d - directory
rwx - read/write/execute bits for user
r-s - read/execute/setuid bits for group
--- - nothing for other users
Có r-s
nghĩa là bất kỳ tệp hoặc thư mục nào được tạo trong thư mục này sẽ có nhóm tự động được đặt thành nhóm group
.
Đó là những gì gây ra các tập tin foo.txt
và bar.txt
được tạo ra như vậy:
-rw-r--r--. user group foo.txt
-rw-rw-r--. user group bar.txt
quyền và ô
Các quyền bạn đang thấy là một vấn đề khác. Chúng được điều chỉnh bởi các cài đặt cho của bạn umask
. Bạn có thể thấy những gì bạn umask
được thiết lập với lệnh umask
:
$ umask
0002
LƯU Ý: các bit này còn được gọi là bit "chế độ".
Đó là một mặt nạ để nó sẽ vô hiệu hóa bất kỳ bit nào liên quan đến quyền được kích hoạt. Trong ví dụ này, bit duy nhất tôi muốn tắt là quyền ghi cho người khác.
0 - skipping for this conversation
0 - value of user bits
0 - value of group bits
2 - value of other bits
Việc biểu diễn các "bit" trong lệnh này ở dạng thập phân. Vì vậy, 2 tương đương với 010 ở dạng nhị phân, đó là bit ghi. 4 (100) có nghĩa là bạn muốn đọc bị vô hiệu hóa. 7 (111) có nghĩa là bạn muốn đọc / ghi / thực thi tất cả bị vô hiệu hóa. Xây dựng nó từ đây:
$ umask 007
Sẽ vô hiệu hóa các bit đọc / ghi / thực thi cho người dùng khác.
Vì vậy, những gì về các tập tin của bạn?
Vâng, umask
điều chỉnh các quyền sẽ được thiết lập khi một tệp mới được tạo. Vì vậy, nếu chúng ta có bộ sau umask
:
$ umask 007
Và bắt đầu chạm vào các tệp mới, chúng tôi sẽ thấy chúng được tạo như vậy:
$ touch newfile1.txt newfile2.txt
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:34 newfile2.txt
Nếu chúng ta thay đổi nó thành một cái gì đó khác, hãy nói điều này:
$ umask 037
$ ls -l |grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:36 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Nó sẽ không có bất kỳ tác động nào đối với các tệp mà chúng tôi đã tạo. Xem tại đây:
$ umask
0037
$ touch newfile1.txt newfile2.txt
$ ls -l | grep newfile
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile1.txt
-rw-rw---- 1 saml saml 0 Nov 3 22:37 newfile2.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile3.txt
-rw-r----- 1 saml saml 0 Nov 3 22:35 newfile4.txt
Vậy thì chuyện gì đang xảy ra với trình duyệt tập tin?
Đây umask
là cái mà tôi gọi là cài đặt "mềm". Nó hoàn toàn không phải là tuyệt đối và có thể được thông qua khá dễ dàng trong Unix theo một số cách. Nhiều công cụ có các công tắc cho phép bạn chỉ định các quyền như là một phần của hoạt động của chúng.
Lấy mkdir
ví dụ:
$ umask
0037
$ mkdir -m 777 somedir1
$
$ ls -ld somedir1
drwxrwxrwx 2 saml saml 4096 Nov 3 22:44 somedir1
Với công -m
tắc chúng ta có thể ghi đè umask
. Các touch
lệnh không có thiết bị này, do đó bạn có để có được sáng tạo. Xem phần Hỏi & Đáp về U & L này có tiêu đề: Các tệp có thể được tạo với quyền được đặt trên dòng lệnh không? chỉ cho các phương pháp như vậy.
Những cách khác? Chỉ cần ghi đè umask
. Trình duyệt tệp rất có thể đang làm điều này hoặc hoàn toàn bỏ qua umask
và đặt tệp xuống bằng bất kỳ quyền nào được cấu hình để thực hiện.