免密码执行 sudo

我们经常需要在 headless 环境下做一些事情,自动执行一些脚本。有时我们需要 sudo 却苦恼于它需要交互输入密码,那我们应该怎么办?

echo <password> | sudo -S <command>

通过查阅 man sudo,我们发现有这个方案,-S, --stdin 表示从 stdin 读取密码。

如果我们希望一劳永逸,使某个用户一直处于免密码 sudo 的状态,我们可以通过 sudo visudo 命令修改 /etc/sudoers 文件来实现。

user ALL=(ALL) NOPASSWD:ALL

格式为:

<user> <host>=(<sudo-as-user>) <allowed-commands>
%<group> <host>=(<sudo-as-user>) <allowed-commands>

第一个是执行 sudo 的用户,第二个是允许 sudo 的主机,等号后的括号内是允许 sudo 借用的目标用户(一般是 root 或者 ALL),括号外是允许 sudo 的命令。

NOPASSWD 是指无需密码。

但我们仍然可能遇到错误,当发生 sudo: sorry, you must have a tty to run sudo 时,可以 sudo visudo 然后注释掉 Defaults requiretty 行解决。

转载于:https://my.oschina.net/tridays/blog/811286

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值