我希望/var/www目录中的所有文件都归 nginx.devel 所有。我已经执行chmod过一次并使用rsync.
但是如果我创建一个新文件然后rsync它,它将归 user.user 所有,我需要chmod使用sudo它的特权运行。
你不能。好吧,无论如何都不会自动。但是,您可以强制执行组权限,通过仔细规划和适当的 umask,可以解决大多数权限问题。如果在/var/www目录上设置 setgid 位,它将确保在该目录下创建的任何新文件都归该devel组所有。
请注意,根据您使用的标志,rsync可能会覆盖此行为并复制源文件的所有权。
要设置 setgid 位:
$ ls -ld 测试 drwxr-xr-x 2 insyte insyte 4096 2009-08-13 04:39 测试 $ chmod g+s 测试 $ ls -ld 测试 drwxr-sr-x 2 insyte insyte 4096 2009-08-13 04:39 测试
行为演示:
$ id uid=1000(insyte) gid=1000(insyte) 组=4(adm),20(dialout),24(cdrom) $ ls -ld 测试 drwxr-xr-x 2 insyte 备份 4096 2009-08-13 04:39 测试 $触摸测试/文件1 $ ls -l 测试 共 0 -rw-r--r-- 1 insyte insyte 0 2009-08-13 04:43 file1 $ sudo chmod g+s 测试 $ ls -ld 测试 drwxr-sr-x 2 insyte 备份 4096 2009-08-13 04:43 测试 $触摸测试/文件2 $ ls -l 测试 共 0 -rw-r--r-- 1 insyte insyte 0 2009-08-13 04:43 file1 -rw-r--r-- 1 insyte 备份 0 2009-08-13 04:44 file2
效果也是递归的;设置 setgid 位后创建的任何新目录也将设置 setgid 位。
当然,这种方法的替代方案是每分钟运行一次并修复/var/www/.
| 归档时间: |
|
| 查看次数: |
8509 次 |
| 最近记录: |