我可以以不同于 apache 用户的身份使用 shell_exec 或 exec 吗?

我可以以不同于 apache 用户的身份使用 shell_exec 或 exec 吗?

我有一个媒体服务器(仅具有 LAN 访问权限),我希望能够通过 Web 界面访问的一些脚本来控制它。因此,我希望像通过 SSH 终端一样运行这些脚本。

使用命令 shell_exec() 确实是我想要的,例如:

<?php
$output = shell_exec('/home/user/scripts/scriptname.sh 2>&1');
echo $output;
?>

问题在于它以 www 用户身份运行它们,而不是以设计它们作为的用户身份运行(不想以 root 身份运行)。

.sh 文件的示例:

#!/bin/bash
xdotool key --window "$(xdotool search --name kodi)" q
sleep 5
pkill -9 -x kodi.bin

如果 Kodi 锁定或出现其他情况,此脚本将会终止 Kodi,它必须由运行它的用户运行(在本例中,该用户是自动登录 Ubuntu 的用户),并且我希望在页面上有一个按钮,可以通过 LAN 上任何设备上的任何 Web 浏览器执行此操作。

我不想通过权限更改、组等来做这些事情,我希望能够使用我为 ssh 设置的用户名和密码,作为 shell_exec 命令的一部分以不同的用户身份登录。

libssh2 使用所需的用户名和密码进行身份验证,因此如果需要,我会安装它,但如果能够使用 PHP 默认安装中包含的功能就更好了

答案1

不建议使用 php 访问你的 linux shell,我认为这不安全。如果你想使用 ssh 访问你的 linux shell,你可以使用带有 firessh 插件的 firefox。火狐

这是与我的本地机器连接的 firessh

相关内容