我有一组需要首先登录到shell的linux系统命令。我如何在php中做到这一点呢?
例如:
$output2 = shell_exec('ls -lrt /opt/test 2>&1');由于/opt/test只能由用户/所有者XXX访问,因此我需要使用该用户名登录。runuser命令可能会有帮助,但我需要指导。
实际上,我需要通过系统命令运行一个应用程序,但在此之前,用户必须登录才能访问该应用程序。
发布于 2013-03-07 16:52:07
一种方法是创建一个shell脚本,其中包含您作为特权登录用户运行所需的所有命令,然后使用sudo运行该shell脚本。
您将需要更改sudoers文件,以便脚本的执行可以由运行脚本的用户运行。
例如:
Cmnd_Alias HTTP_COMMANDS = /usr/local/my_ls_script
XXXX ALL=(ALL) NOPASSWD: HTTP_COMMANDS不过,做这件事时要小心!确保sudoers行只能运行您指定的命令。
此外,请确保您至少切换到用户一次,并运行sudo,否则for服务器将无法为该用户运行sudo。
此外,您可能需要在sudoers文件中禁用NO_TTY。
您可以将命令更改为:
$output2 = shell_exec('sudo -u XXXX /usr/local/my_ls_script 2>&1');https://stackoverflow.com/questions/15266466
复制相似问题