即使使用 NOPASSWD,Sudo 验证(sudo -v)也会要求输入密码

即使使用 NOPASSWD,Sudo 验证(sudo -v)也会要求输入密码

我有一个用于在 CI 设置中测试安装脚本的 docker 映像。安装脚本旨在由非 root 用户运行,因此脚本中的命令使用sudo频率很高。

我添加了以下内容,这样我就可以在运行 sudo 命令时避免密码提示。

RUN adduser --disabled-password --gecos '' user
RUN adduser user sudo
RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER user

但是,这不适用于 sudo verify ( sudo -v)。无论我怎么尝试,sudo -v它总是会要求输入密码。我不想sudo -v从安装脚本中删除。

有人知道这是为什么吗?我在ubuntu:16.04ubuntu:18.04docker 镜像上都试过了。

答案1

如果你有较新版本的 sudo,你可能还需要配置verifypw

Defaults verifypw = any

你可以阅读文档,但基本上这意味着如果您匹配任何 NOPASSWD 行,它就不会要求输入密码。默认为,all这意味着您必须将所有组和用户与 NOPASSWD 匹配才能跳过密码。

因此,如果您的用户也属于 root 或 wheel 或 sudo 组,并且他们没有说 NOPASSWD,那么它会询问。

相关内容