如何使用cPanel uapi以适当的权限运行php脚本?

时间:2019-07-26 00:33:02

标签: php permissions cpanel cpanel-uapi

我正在创建一个PHP脚本,它将在cpanel中创建一个电子邮件帐户。我正在使用shell_exec()在命令行中使用uapi Email :: add_pop函数,因为liveAPI PHP类遇到其他问题。

我进行了一些搜索,最初,这似乎是由于没有设置suexec或suphp引起的。但是,唯一会发生错误的更改是用于读取99而不是现在的1001的RUID。

我有三个文件。 我有一个简单的测试表单,位于/home/housediablo/public_html/index.php

<form action="formhandler.php" method="post">
    username: <br>
    <input type="text" name="username"><br>
    Password: <br>
    <input type="text" name="password"><br>
    <input type="submit" value="Submit">
</form>

我的表单处理程序位于/home/housediablo/public_html/formhandler.php

<?php
include "/usr/local/cpanel/base/frontend/paper_lantern/createmail.live.php";
?>

而且我有使用shell_exec()的实际脚本,位于/usr/local/cpanel/base/frontend/paper_lantern/createmail.live.php

<?php
$username = $_POST['username'];
$password = $_POST['password'];
$domain = 'housediablo.com';
$cmdString =  'uapi --user=housediablo Email add_pop email=' . $username . ' password=' . 
$password . ' quota=0 domain=' . $domain . ' skip_update_db=1';
echo ($cmdString);
$output = shell_exec($cmdString . ' 2>&1');
echo "</ br><pre>$output</pre>";
?>

预期结果是在cpanel中创建了一封电子邮件,但我只是得到以下输出:

  

[2019-07-25 23:00:22 +0000]死[uapi] setuids失败:尝试   setuid为RUID 1001的普通用户   /usr/local/cpanel/Cpanel/AccessIds/SetUids.pm第89行。     Cpanel :: AccessIds :: SetUids :: _ log_and_die_if_not_root()在   /usr/local/cpanel/Cpanel/AccessIds/SetUids.pm第66行     Cpanel :: AccessIds :: SetUids :: setuids(“ housediablo”)在   bin / apitool.pl第109行bin :: apitool :: run( CPANEL_HIDDEN ,    CPANEL_HIDDEN CPANEL_HIDDEN CPANEL_HIDDEN CPANEL_HIDDEN CPANEL_HIDDEN CPANEL_HIDDEN < / strong>, CPANEL_HIDDEN )在bin / apitool.pl第38行退出级别[die] [pid = 19664](setuids失败:尝试将setuid设置为普通用户   RUID 1001)

我可以从终端以root用户身份运行回显的$ cmdString,它将起作用:

uapi --user=housediablo Email add_pop email=test password=Str0ngT3stPw! quota=0 domain=housediablo.com skip_update_db=1

我还可以从终端以root用户身份运行php脚本,并使用硬编码的虚拟变量代替POST中的变量,它也将起作用。

0 个答案:

没有答案