如何使目录组拥有的目录中创建的文件?

如何使目录组拥有的目录中创建的文件?

在 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

相关内容