【发布时间】:2015-02-26 03:21:23
【问题描述】:
我添加了一个这样的用户:
$ adduser --system --home /no/home --no-create-home --group --disabled-password --disabled-login testuser
将用户添加到组:
$ adduser testuser testgroup
向 sudoers (visudo) 添加行:
testuser ALL=(ALL) NOPASSWD: ALL
%testgroup ALL=(ALL:ALL) NOPASSWD: ALL
当我尝试运行具有以下内容的 bash 脚本时:
#!/bin/sh
sudo -u testuser /usr/bin/php /usr/local/bin/script.php
但是当我运行这个脚本时,我在日志中得到了错误:
sudo: no tty present and no askpass program specified
编辑:requiretty 不在 sudoers 文件中。
【问题讨论】:
-
sudo对您正在更改从的用户/组而不是您正在更改到的用户的权限吗?那么这些行不是让testuser用户和testgroup组在没有密码的情况下运行任何命令(作为任何人)吗?您不需要授予运行脚本的用户权限以运行命令astestuser来满足您的需求吗?假设这就是你的意思? -
@EtanReisner 我也试过了,但还是出现同样的错误。
-
你也试过what?以测试用户身份运行
sudo?您具体运行/尝试了什么?哪个用户正在运行原始脚本? -
@EtanReisner 你是对的。我必须为客户组添加 NOPASSWD。现在它可以正常工作了。谢谢。