在 Linux 上,有没有一种方法可以使目录中创建的所有新文件都归目录组所有,而不是创建用户的组所有?
答案1
如果你chmod g+s directory
这样做,那么在该目录中创建的所有文件都将归该组所有。
newgroup
这实际上是您只能加入一个群组的时代的遗留,而现在并不真正需要。
答案2
用户创建的文件使用其当前组 ID 创建。要检查用户 ID,您可以执行id
; 将您的 GID 更改为组列表中的某个值,请使用newgrp <group>
或sg <group> <command>
:第一个命令将启动 shell,后者将仅运行将 GID 设置为 id 的命令<group>
。
检查这个 shell '日志':
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