我正在编写一个使用一些 shell 脚本的 PHP 前端。但是,问题是我必须以特定用户的身份在一个非常特定的目录(可访问但不属于 www-data)中调用脚本。
$command = './myscript.py 2>&1 | tee /tmp/outputfile.txt'; // set the command
$cwd = 'cd /home/secondUser/myscript'; // set current working directory
$wrapper = 'echo "Password" | sudo -u secondUser bash -c'; // add extra wrappers
$fullCommand = $cwd.';'.$wrapper.' "'.$command.'"'; // combine subcommands
$output = system($fullCommand);
我正在尝试不同的执行命令(shell_exec,exec ...)。但是,我一直在日志中发现以下错误:
sudo: no tty present and no askpass program specified
问题不仅在于运行 shell 脚本(例如,通过编辑 sudoers),而且在于将其作为特定的 ruser 运行。
有什么提示或技巧吗?