我有一个名为data. 然后我在用户 id 'robot' 下运行一个脚本。机器人写入data目录并更新里面的文件。data我和机器人都可以更新这个想法。
所以我设置了这样的权限和所有者组
drwxrwxr-x 2 me robot-grp 4096 Jun 11 20:50 data
Run Code Online (Sandbox Code Playgroud)
我和机器人都属于'robot-grp'。我像父目录一样递归地更改权限和所有者组。
我定期data使用rsync. 不幸的是,上传的新文件没有像我希望的那样继承父目录的权限。相反,它看起来像这样
-rw-r--r-- 1 me users 6 Jun 11 20:50 new-file.txt
Run Code Online (Sandbox Code Playgroud)
当机器人尝试更新时new-file.txt,由于缺少文件权限而失败。
我不确定设置 umask 是否有帮助。无论如何,新文件并没有真正遵循它。
$ umask -S
u=rwx,g=rx,o=rx
Run Code Online (Sandbox Code Playgroud)
我经常对 Unix 文件权限感到困惑。我什至有一个正确的计划吗?我正在使用 Debian lenny。