我正在创建一个 Web 应用程序 (php),用于处理在实时服务器上创建 Drupal 站点。
该系统能够创建新站点并对现有站点进行一些维护。而且,由于这是一个网络托管环境,每个文件夹可能属于不同的用户。
为了正确地做到这一点,我需要让apache
用户像其他用户一样运行一些命令。
我为创建新文件(并与git
/ drush
/etc 交互)所做的事情类似于:
$some_command = `echo "PASSWD" | sudo -u USER -S do_something 2>&1; echo $?;`;
我已经在sudoers
文件上有一组命令,apache
用户可以作为git
用户运行。
我现在的问题是我需要让apache
任何可能在服务器上拥有托管帐户的用户运行。
我的想法是在文件上创建一个apache ALL=(ALL) ALL
条目。sudoers
我仍然会留下所有要求用户密码的命令。
考虑到这一点,采用这种方法是否明智?如果没有,也许我可以将“全部允许”策略仅应用于拥有托管帐户的用户。如果是这样,我如何将政策范围缩小到一组?
谢谢
编辑:我虽然为此使用suPHP,因为它允许 apache 作为其所有者运行每个 PHP 脚本。但是我仍然需要以另一个用户身份运行一些其他命令(如在别人的主文件夹/public_html 中创建文件),所以它似乎不是一个选项。