如何打开Perl文件句柄以通过sudo(或作为另一个用户)写入数据

前端之家收集整理的这篇文章主要介绍了如何打开Perl文件句柄以通过sudo(或作为另一个用户)写入数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将数据写入文件,但应该使用特定用户的访问权限打开文件句柄.

因此,以下声明:

open (FH,"> $filename") or die "$@\n";

允许以特定用户身份写入文件.

有没有办法在Perl脚本中执行此操作,而不使用sudo -u $username运行整个脚本?

解决方法

有两种既定的方法.堆叠器,您被邀请编辑此答案以填补每个答案的缺点.

用sudo运行程序.您在程序中执行的第一件事是打开所需的文件并保留句柄,然后立即执行drop the root privileges.必须以低权限进行任何进一步处理. Apache httpd工作就像这样,它以root身份打开日志文件,但继续以无人或类似方式运行.

如果您不喜欢这种方式,请正常运行程序,当您需要提升时,创建一个新进程并使用用户配置的sudo,su –,kdesu / gksu或诸如此类的方式运行它. CPAN客户端就像这样工作,它以普通用户的身份获取,解包,构建和测试模块,但是在安装时调用sudo make install等.

猜你在找的Perl相关文章