在 CentOS 6.5 下运行时,我有一个 procmail 配方,它调用一个 Perl 脚本,该脚本处理发送给 reguser 的邮件并写入如下文件:
my $text = "Text generated from incoming mail";
my $filename = "test.txt";
open(FILE, ">" . $filename) or die "Can't open file $filename";
print FILE $text;
close FILE;
从 Procmail 运行脚本时创建此文件时,只有 root 具有读/写权限,例如
-rw------- 1 regusr regusr 33 Sep 12 22:40 test.txt
这些权限似乎有点随意。当我的 Perl 脚本以 regusr 身份从命令行运行时,我获得了如下权限:
-rw-rw-r-- 1 regusr regusr 33 Sep 14 14:22 test.txt
为什么会有差异呢?
答案1
啊,UMASK...我没有想到这一点。在 .procmailrc 中,UMASK=077 没有任何效果,但 UMASK=003 似乎具有预期的效果,特别是屏蔽了其他用户的写入和执行。我刚刚在 Procmail 文档中发现“如果未指定,umask 默认为 077”pm-doc.sourceforge.net/doc/#variable_umask