PHP系统命令linux


php system commands linux

我有一组linux系统命令,需要先登录到shell。

例如:

$output2 = shell_exec('ls -lrt /opt/test 2>&1');

由于/opt/test只能由用户/所有者XXX访问,我需要使用该用户名登录。Runuser命令可能会有帮助,但我需要指示。

实际上我需要通过系统命令运行一个应用程序,但在此之前,用户必须登录才能访问该应用程序

一种方法是创建一个shell脚本,其中包含作为特权登录用户需要运行的所有命令,然后使用sudo运行该shell脚本。

您需要更改sudoers文件,以便脚本的执行可以由脚本的用户运行。

,

 Cmnd_Alias HTTP_COMMANDS = /usr/local/my_ls_script
 XXXX ALL=(ALL) NOPASSWD: HTTP_COMMANDS

做这个的时候要小心!确保sudoers行只能运行您指定的命令。

另外,请确保您至少切换到该用户一次,并运行sudo,否则,web服务器将无法为该用户运行sudo。

另外,您可能需要禁用sudoers文件中的NO_TTY。

您可以将命令更改为:

$output2 = shell_exec('sudo -u XXXX /usr/local/my_ls_script 2>&1');