我有一个运行 ubuntu 服务器的虚拟机(最新的 LTS 忘记了实际版本号)。我已经设置 sudo 不要求输入密码,但是当我这样做时,我无法再使用 sudo -u 以 postgres 用户身份运行 psql,除非我是 root。
sudo -u postgres psql
我现在收到密码提示,然后在输入密码后出现此消息......
Sorry, user _____ is not allowed to execute '/usr/bin/psql' as postgres on ...
sudoers 文件
root ALL=(ALL) ALL
%admin ALL=NOPASSWD: ALL
答案1
假设您的用户在该admin
组中,请将第二行修改为
%admin ALL=(ALL) NOPASSWD: ALL
允许每个用户使用无密码 sudo,而不仅仅是 root。您当前的配置允许
- root 以任何人身份运行任何东西
- 组中的用户
admin
无需密码即可以 root 身份运行任何内容
因为没有 runas 规范(ALL)
使得可以以任何人的身份运行。