jus*_*ime 81 linux file-permissions ubuntu
当许多用户(都属于 mygroup)可以创建和编辑文件时,我想创建一个共享目录。我希望此目录和子目录中的所有文件都属于mygroup
我已经改变了现有的文件有组MYGROUP使用chgrp,但新文件仍然可以属于用户的主组创建的。有没有办法确保新文件属于该组,而无需重复运行 chgrp.conf ?
les*_*ana 126
您想设置 SetGID 位。
chmod g+s dir
Run Code Online (Sandbox Code Playgroud)
在目录中创建的所有新文件都将组设置为目录的组。
超级用户博客文章解释了粘滞位和其他 Linux 权限位:
然而,SetGID 是一个完全不同的球类游戏。当一个目录设置了 SetGID 位并且在该目录中创建了一个文件时,该文件的组所有权会自动修改为该目录的组。
Luk*_*ePH 15
这可能会让一些人坚持使用 setgid,如果文件夹的组与您自己的不同,您可能需要以 root 身份运行 chmod,但您不会收到任何指示您需要执行此操作的错误。
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir # no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir # but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo # and the group is set wrong
Run Code Online (Sandbox Code Playgroud)
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir # the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo # and the group is set right
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76534 次 |
| 最近记录: |