有没有办法为perl脚本创建的所有文件设置全局权限?

时间:2010-12-08 10:30:48

标签: perl file-permissions

我有一个运行CPAN :: Mini :: Inject操作的脚本,并且有一个App :: Cache。它工作正常,但有时我需要从不同的用户帐户运行它,这是因为我运行文件权限,因为一些文件是自动创建的0740权限。

现在我正在使用system("chmod -R a+w .")的拐杖,但我不喜欢它。

对于脚本的范围,是否有一种方法可以为所有创建的文件强制实施0777的全局文件模式?

2 个答案:

答案 0 :(得分:6)

查看umask

答案 1 :(得分:6)

您可以使用umask内置更改默认文件模式。例如,umask 0会将默认模式更改为0777。

但是,如果使用权限0740创建文件,则可能意味着CPAN :: Mini :: Inject正在明确设置权限,并且umask可能不起任何作用。

在后一种情况下,您将不得不深入了解模块源代码,查找设置权限的位置,并查看是否可以重载它。另一种选择是向作者提交功能请求。

顺便说一句,CPAN :: Mini模块接受dirmode选项来设置目录权限。