1

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

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

有一个更好的方法吗?

问候弗兰克

4

1 回答 1

2

无论您在做什么,chmod 777都会被误导以致失去您的计算机驾驶执照。使文件在世界范围内可写和可执行是一个严重的安全问题。

您可能正在寻找 Procmail 的UMASK变量。如果权限太紧,UMASK在交付前设置一个更宽松的。例子:

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

系统umask调用只能剥离权限,不能添加权限。通常,C 程序尝试使用 mode 创建数据文件0666,然后umask应用 ,通常会产生类似的东西0644(意思是有效umask的东西是0022or 0033)。在 Linux 上,目录的权限也会在一定程度上影响新创建文件的权限。但我们正在 Procmail 之外冒险。也许您可以通过将UMASKProcmail 的功能与目录权限相结合来实现您需要的最终结果。

如果您提取的“附件”不是 MIME 附件而是实际附件uuencode,还要注意编码指定每个编码文件的权限。如果这begin条线说,644那么你可能不得不改变它。Procmail 再次救援!

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

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

于 2014-03-11T07:46:27.370 回答