天天看点

远程使用sudo 执行命令,慎用!

最近在公司里自己写的发布系统中遇到一个问题,发布系统其中有一个功能是远程执行数据库备份的功能,就是通过远程执行服务器上的一个备份脚本。备份脚本中会检查备份目录是否存在,如果不存在,则会创建备份目录。由于远程用户非root,所以创建目录时就加上了sudo 。在通过发布系统执行远程备份时,出现如下报错:

5sudo: no tty present and no askpass program specified

网上查询google ,需要修改sudo的配置文件。解决办法:

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支持。

第一个问题,碰到过。第二个我没有试过。

继续阅读