CENTOS apache ALL=(root) NOPASSWD: /path/to/shell.sh 不工作
CENTOS apache ALL=(root) NOPASSWD: /path/to/shell.sh is not working
我正在尝试通过 IPtables 管理来做一个 Web 界面。
我创建了一个文件,文件名为test.php
$output = shell_exec('bash /usr/bin/iptables.sh 2>&1');
echo $output;
我给了 /usr/bin/iptables.sh NOPASSWD 这样我就可以通过 apache 使用 sudo 执行文件而无需使用密码
sudo iptables -L
sudoers 文件:
apache ALL=(root) NOPASSWD: /usr/bin/iptables.sh
但我仍然收到以下错误:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things: #1)
Respect the privacy of others. #2) Think before you type. #3) With
great power comes great responsibility. sudo: a terminal is required
to read the password; either use the -S option to read from standard
input or configure an askpass helper{"mode":"full","isActive":false}
但是,如果我使用
apache ALL=(root) NOPASSWD: ALL
一切正常。
我仔细检查了我的目录并使用了准确的路径
[root@CentOS bin]# readlink -f iptables.sh
/usr/bin/iptables.sh
超级无知,谁能帮我指个路? :'(
已解决。
如果有人有同样的问题,答案就在这里
bash is redundant
只需像这样删除 bash 和 运行
$output = shell_exec('/usr/bin/iptables.sh 2>&1');
我正在尝试通过 IPtables 管理来做一个 Web 界面。
我创建了一个文件,文件名为test.php
$output = shell_exec('bash /usr/bin/iptables.sh 2>&1');
echo $output;
我给了 /usr/bin/iptables.sh NOPASSWD 这样我就可以通过 apache 使用 sudo 执行文件而无需使用密码
sudo iptables -L
sudoers 文件:
apache ALL=(root) NOPASSWD: /usr/bin/iptables.sh
但我仍然收到以下错误:
We trust you have received the usual lecture from the local System Administrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility. sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper{"mode":"full","isActive":false}
但是,如果我使用
apache ALL=(root) NOPASSWD: ALL
一切正常。
我仔细检查了我的目录并使用了准确的路径
[root@CentOS bin]# readlink -f iptables.sh
/usr/bin/iptables.sh
超级无知,谁能帮我指个路? :'(
已解决。
如果有人有同样的问题,答案就在这里
bash is redundant
只需像这样删除 bash 和 运行
$output = shell_exec('/usr/bin/iptables.sh 2>&1');