我有一个名为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。
几天来,我一直在 Postfix/Dovecot 中遇到权限问题。设置使用虚拟域和用户,因此用户的路径home是/var/mail/<domain>/<user>; 路径MailDir是/var/mail/<domain>/<user>/MailDir
邮件日志继续显示Permission Denied:
Apr 3 05:44:16 debian-x2 postfix/virtual[5670]: D6DDD1780100: to=<jeff@deltoid.com>,
relay=virtual, delay=0.15, delays=0.1/0.01/0/0.04, dsn=4.2.0, status=deferred
(maildir delivery failed: create maildir file
/var/mail/deltoid.com/jeff/Maildir/tmp/1396518256.P5670.debian-x2: Permission denied)
Run Code Online (Sandbox Code Playgroud)
权限如下:
# ls -l /var/mail/
total 96
drw-rws--- 4 vmail vmail 4096 Apr 2 18:19 deltoid.com
-rw-rw---- 1 nobody mail 80586 Apr 2 07:45 nobody
# ls -l /var/mail/deltoid.com/
total 12
drw-rws--- 3 vmail vmail 4096 Apr 3 04:47 jeff
drw-rws--- 3 vmail vmail …Run Code Online (Sandbox Code Playgroud)