我有一个名为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。
我有一个文件夹,其中将通过脚本自动创建新的子文件夹和文件。
我想递归地维护放置在父目录中的所有新文件夹和文件的用户和组权限。我知道这涉及设置一个粘性位,但我似乎无法找到一个能准确显示我需要的命令。
这是我到目前为止所做的:
sudo mkdir -p /path/to/parent
sudo chmod -R 660 myself:somegroup /path/to/parent
Run Code Online (Sandbox Code Playgroud)
此后,我希望将 660 权限递归设置到/path/to/parent.
但是,到目前为止我尝试过的一切都失败了。有人可以帮忙吗?
实际上,八进制标志 660 甚至可能都不正确。我想要的权限是:
/path/to/parent可由具有权限的用户执行/path/to/parent不是世界可读的我在 Ubuntu 10.0.4 LTS 上运行。
有人可以帮忙吗?