sudo no tty present and no askpass program specified

在docker中用php跑脚本使用sudo时发现出现标题中的错误,找了好久没有发现问题,最后借助博文
http://www.cnblogs.com/cyberwalker/p/3604145.html才发现问题所在。

1.注释Defaults requiretty
Defaults requiretty修改为 #Defaults requiretty, 表示不需要控制终端。
否则会出现sudo: sorry, you must have a tty to run sudo

2.增加行 Defaults visiblepw
否则会出现 sudo: no tty present and no askpass program specified
我发现sudo-1.6.9p17-5.el5是不支持这个参数的,sudo-1.7.2p1-10.el5支持。

3.赋予www用户执行svn权限,如,增加行:

www  ALL=(ALL) NOPASSWD: /data0/shell/svnvp.sh

注:NOPASSWD可以使在命令执行时不需要交互输入www 用户的密码

www用户为nginx或apache的运行用户

4.重启nginx或apache,让用户重新获得权限。

猜你喜欢

转载自blog.csdn.net/cckooo/article/details/79907599
tty