Câu trả lời:
Nếu bạn chmod g+s directory
thì tất cả các tệp được tạo trong thư mục đó sẽ thuộc sở hữu của nhóm đó.
newgroup
thực sự là một sự nắm giữ từ những ngày mà bạn chỉ có thể ở trong một nhóm và ngày nay không thực sự cần thiết.
Các tệp được tạo bởi người dùng được tạo bằng ID nhóm hiện tại của anh ta. Để kiểm tra id người dùng, bạn có thể thực thi id
; để thay đổi GID của bạn thành một cái gì đó từ danh sách các nhóm của bạn sử dụng newgrp <group>
hoặc sg <group> <command>
: lệnh đầu tiên sẽ khởi chạy shell và lệnh sau sẽ chỉ chạy một lệnh với GID được đặt thành <group>
id.
Kiểm tra cái vỏ này 'log':
whitequark@forth:~/test$ id
uid=1000(whitequark) gid=1000(whitequark) groups=4(adm),20(dialout),24(cdrom),
46(plugdev),104(lpadmin),114(admin),118(sambashare),1000(whitequark)
whitequark@forth:~/test$ touch file1
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
whitequark@forth:~/test$ newgrp admin
<<< at this point a new shell is started >>>
whitequark@forth:~/test$ touch file2
whitequark@forth:~/test$ ls -la
total 8
drwxr-xr-x 2 whitequark whitequark 4096 2010-01-29 19:49 .
drwxr-xr-x 82 whitequark whitequark 4096 2010-01-29 18:02 ..
-rw-r--r-- 1 whitequark whitequark 0 2010-01-29 19:49 file1
-rw-r--r-- 1 whitequark admin 0 2010-01-29 19:49 file2