如何更改提取的附件的所有权(postfix,procmail,uudeview)?

时间:2014-03-07 03:08:46

标签: attachment postfix-mta procmail

我设法从发送到某个电子邮件的电子邮件中提取所有附件到我的linux服务器上的公共文件夹(使用postfix-> procmail-> uudeview)。不幸的是,文件本身被保存,其权限仅限于发送文件的系统用户(称为“扫描”)。

如何在我的设置中构建“chmod 777 /path/to/folder/*.pdf”,以便文件(来自我的扫描仪)可供任何人使用?

有更好的方法吗?

此致 弗兰克

1 个答案:

答案 0 :(得分:2)

无论您正在做什么,chmod 777都被误导为失去您的计算机驾驶执照。 严重的安全问题使文件可以写入并可执行。

您可能正在寻找Procmail的UMASK变量。如果权限太紧,请在投放前设置更宽松的UMASK。例如:

:0
* some conditions
{
    UMASK=003
    :0
    | uudeview --whatever
}

umask系统调用只能删除权限,而不能添加权限。通常,C程序尝试使用模式0666创建数据文件,然后应用umask,通常会产生类似0644的内容(意味着有效umask就像00220033)。在Linux上,directory's permissions also somewhat influence the permissions新创建的文件。但我们在这里冒险在Procmail之外。也许您可以通过将Procmail的UMASK工具与目录权限相结合来实现您所需的最终结果。

如果您要解压缩的“附件”不是MIME附件,而是实际uuencode,请注意编码specifies permissions for every encoded file。如果begin行显示644,那么您可能需要更改它。 Procmail再次救援!

:0
* some conditions
{
    UMASK=003
    | sed 's/^begin [0-7][0-7][0-7][0-7]* /begin 664 /' | uudeview --whatever
}

最后,即使这样做没有帮助,也可以归结为修改uudeview,可能是通过调整其来源,或者创建一个在写入后修复权限的包装器。