标准账户可以使用sudo获取root访问权限,无需密码请求。

我通过运行安装脚本来安装了一些软件。
sudo ./install.sh

在我的Ubuntu笔记本电脑上安装后,所有帐户都可以通过简单地发出命令sudo -s来获得root访问权限,即使是标准(非管理员)帐户也可以。而且,在发出命令sudo -s时没有密码提示。
我的/etc/sudoers文件如下所示:
Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d
ALL ALL=(ALL) NOPASSWD:ALL

1打开文本编辑器中的安装脚本。查看它对 /etc/sudoers 文件做了哪些更改,然后撤销这些更改。 - Web-E
1这可能是你提到的那个“特定软件”做的。除非他们警告过你会发生这种情况,否则你应该将此问题报告给软件开发者作为一个错误。 - Takkat
请在您的问题中包含/etc/sudoers文件的内容。 - Eric Carvalho
我的sudoers文件 - coder
2请问我们能否也得到您获取脚本的链接? - Rinzwind
1任何软件的安装脚本都添加类似ALL ALL=(ALL)这样的行是一个严重的安全漏洞。所以如果可能的话,请告诉我们您从哪里获取了安装脚本(如@Rinzwind所说),或者该脚本随附的软件是什么,以便将此漏洞报告给开发人员,并希望能够快速修复。谢谢! - Eliah Kagan
1这个软件是什么东西? - j0h
2个回答

如果你看一下sudoers文件的底部,会发现它写着"ALL ALL=(ALL) NOPASSWD:ALL"。这是用于无需密码执行sudo命令的语法。在删除这行之前,请先备份该文件。
安德鲁

1但为什么非管理员账户也可以使用sudo命令切换到root用户? - coder
3这行写着“全部”,表示所有用户。 - ahalverson

删除这行:
ALL ALL=(ALL) NOPASSWD:ALL

但这真的很奇怪,出现这种情况,所以你安装的软件(基本上是一个脚本吧)可能是恶意的。你可能想要提出第二个问题,在那里粘贴该脚本的内容,并寻求建议... 这真让人感到害怕!

但为什么非管理员账户也可以使用sudo命令切换到root用户? - coder
1因为这正是那行代码的意思?ALL就是关键词。以%admin开头的那行表示组admin的所有成员都有sudo权限,而这行则表示每个人都有。 - Nanne