首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在脚本中减少密码

在脚本中减少密码
EN

Server Fault用户
提问于 2011-05-19 08:05:30
回答 4查看 6.5K关注 0票数 4

我可以无密码地访问服务器。我的用户帐户添加了sudoers文件,用于/etc/init.d/中某些服务/守护进程的NOPASSWD使用。

我想根据一些测试结果编写一个脚本来启动或停止一个守护进程。我已经设置了一个cron来在特定的时间运行这个脚本。但是它返回错误"sudo: no tty存在和没有指定的任务传递程序“。

我可以在没有密码的情况下使用“sudo /etc/init.d/service名称启动/停止”,我没有根密码。

我已经检查了/etc/sudoers文件。没有“申购”。我使用Ubuntu-10.04,2.6.32-24-泛型。

以下是sudoers中的活动行:

代码语言:javascript
复制
Defaults        env_reset
root    ALL=(ALL) ALL
bijo ALL=NOPASSWD: /etc/init.d/apache2
%sudo ALL=(ALL) ALL
%admin ALL=(ALL) ALL
EN

回答 4

Server Fault用户

发布于 2011-05-19 08:18:23

如果您将脚本作为没有密码访问权限的用户运行,那么它应该正确工作,我将确保脚本作为正确的用户运行,我还将手动调用脚本作为正确的用户来测试脚本。

您还可能需要检查sudoers文件中不存在以下行,或者您还有一行表示用户不需要TTY

代码语言:javascript
复制
Defaults requiretty

如果有这一行,您可以将其注释掉(这不是一个好主意)--也许最好在

代码语言:javascript
复制
Defaults:<USERNAME> !requiretty

其中用户名是您的用户

票数 7
EN

Server Fault用户

发布于 2011-05-19 08:20:14

我认为你需要使用ssh -t

票数 1
EN

Server Fault用户

发布于 2011-05-20 08:05:28

抱怨消息来自要求密码的部分代码,抱怨也是如此,因为没有tty,它就不能禁用echo。您可以通过在sudoers中设置visiblepw选项来证明自己在此代码路径中,这将避免该警告并让您看到密码提示。

因此,最终,NOPASSWD:控件出现了问题。

sudoers匹配中有多个规则时,将使用最后一个匹配,而不是最具体的匹配。因此,用户bijo在%sudo或%admin中;因此没有应用NOPASSWD:控件。

您在命令行中的测试是否发生在您将自己添加到其中一个组之后退出/登录之前?

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/271336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档