使用Perl在Cpanel插件构建中以root用户身份执行命令

使用Perl在Cpanel插件构建中以root用户身份执行命令,perl,cpanel,Perl,Cpanel,我是Perl新手。我正在为Cpanel构建一个插件,以便在用户单击某个选项时安装SSL证书 我必须在Perl代码中以root用户身份执行命令。我怎样才能做到这一点呢?因此,基本上您需要在Perl脚本中以root用户身份运行系统命令 您可以在内置函数中使用sudo。这将派生一个新进程,在父进程等待时执行该命令,然后返回该命令的退出状态 例如,此基本命令切换到root,并打印当前用户: perl -e 'system("sudo su -c whoami")' 显然,它在标准输出上输出: root

我是Perl新手。我正在为Cpanel构建一个插件,以便在用户单击某个选项时安装SSL证书


我必须在Perl代码中以root用户身份执行命令。我怎样才能做到这一点呢?

因此,基本上您需要在Perl脚本中以root用户身份运行系统命令

您可以在内置函数中使用
sudo
。这将派生一个新进程,在父进程等待时执行该命令,然后返回该命令的退出状态

例如,此基本命令切换到
root
,并打印当前用户:

perl -e 'system("sudo su -c whoami")'
显然,它在标准输出上输出:

root
注:

  • 要使其工作,您需要您的应用程序用户能够切换到
    root
    (无需键入密码);有些人会认为安全漏洞(一些攻击者会接管你的应用程序会对你的系统造成致命的伤害)

  • 切换到
    root
    用户的实际命令可能因您的操作系统而异;我在示例中使用的是RedHat

  • 我在CPAN中搜索提供“切换到根目录”功能的模块,找到的唯一模块是;我没有尝试过,但它自2013年以来就没有更新过,而且自3到9年以来几乎没有发行悬而未决的问题


因此,基本上您需要在Perl脚本中以root用户身份运行系统命令

您可以在内置函数中使用
sudo
。这将派生一个新进程,在父进程等待时执行该命令,然后返回该命令的退出状态

例如,此基本命令切换到
root
,并打印当前用户:

perl -e 'system("sudo su -c whoami")'
显然,它在标准输出上输出:

root
注:

  • 要使其工作,您需要您的应用程序用户能够切换到
    root
    (无需键入密码);有些人会认为安全漏洞(一些攻击者会接管你的应用程序会对你的系统造成致命的伤害)

  • 切换到
    root
    用户的实际命令可能因您的操作系统而异;我在示例中使用的是RedHat

  • 我在CPAN中搜索提供“切换到根目录”功能的模块,找到的唯一模块是;我没有尝试过,但它自2013年以来就没有更新过,而且自3到9年以来几乎没有发行悬而未决的问题


这看起来不像是一个问题,它与系统更相关。要么你必须以root用户的身份执行脚本,要么你需要从Perl代码中切换运行一个系统命令,该命令将切换到root并运行安装…但是我的插件将执行该命令。。。我在perl中看到了一个使用
系统执行bash命令的示例(command,arg1,arg2
但我必须测试一个唯一的sudo命令这看起来不像是一个问题,它更像是一个系统。要么你必须以root用户身份执行脚本,要么你需要从Perl代码中切换运行一个系统命令,该命令将切换到root并运行安装…但我的插件将执行该命令…i请参阅perl中的一个示例,使用
系统执行bash命令(command,arg1,arg2
,但我只需要测试sudo命令