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

Mit*_*ldu 4 perl file-permissions

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

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

有没有办法可以为脚本的范围强制执行所有创建文件的全局文件模式0777?

sal*_*lva 6

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

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

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

顺便说一下,CPAN :: Mini模块接受一个dirmode设置目录权限的选项.

  • 我不确定为什么你假设权限被明确设置...一些用户/系统可能有默认的umask为0037,或者至少为0057,这是完全合理的.(设置执行用户但不是组似乎有点但是,奇怪的是,这对我来说更多是因为某人没有完全理解unix权限所选择的本地umask设置,而是由CPAN :: Mini :: Inject明确设置.另外,我对源代码进行了快速检查. CPAN :: Mini :: Inject并没有看到任何设置权限的内容,除非设置了`dirmode`选项.) (2认同)