我是Perl的新手。我正在为Cpanel构建插件,以在用户单击选项时安装SSL证书。
我必须以root身份在Perl代码中执行命令。我该怎么办?
答案 0 :(得分:2)
因此,基本上,您需要以root
用户的身份从Perl脚本中运行系统命令。
您可以在内置sudo
内使用system内置函数。这将派生一个新进程,该命令将在父进程等待时执行该命令,然后返回该命令的退出状态。
例如,此基本命令切换到root
并打印当前用户:
perl -e 'system("sudo su -c whoami")'
很可能它在标准输出上输出:
root
注意:
要使其正常工作,您需要您的应用程序用户能够切换到root
(无需输入密码);有些人可能会认为存在安全漏洞(某些本来可以接管您的应用程序的攻击者将能够对您的系统造成致命的破坏)
切换到root
用户的实际命令可能会因操作系统而异;我在示例中使用的是RedHat
我在CPAN中搜索了提供“切换到root”功能的模块,而我发现的唯一模块是Sudo;我没有尝试过,但是自2013年以来就没有更新过,并且自3到9年以来几乎没有待解决的问题