侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

免密码执行 sudo

2023-12-03 星期日 / 0 评论 / 0 点赞 / 72 阅读 / 1372 字

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

我们经常需要在 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 行解决。

广告 广告

评论区