问题描述
我注意到在/etc/sudoers
中授予了两个组similar-looking权限:
# 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
我的具有“管理系统”权限的用户帐户位于admin
组中,并且sudo
组中似乎没有任何用户。这两组是为了什么?
最佳解决方案
Ubuntu 12.04 LTS及更高版本
管理员已添加到sudo
组,但支持admin
组以实现向后兼容性。来自release notes:
Up until Ubuntu 11.10, administrator access using the sudo tool was granted via the
admin
Unix group. In Ubuntu 12.04, administrator access will be granted via thesudo
group. This makes Ubuntu more consistent with the upstream implementation and Debian. For compatibility purposes, theadmin
group will continue to provide sudo/administrator access in 12.04.
执行全新安装时不会创建它,但如果从先前的发行版升级,它仍然存在。无论哪种方式,admin
组都会出现在/etc/sudoers
文件中。
请参阅implementation details和official documentation。
次佳解决方案
Ubuntu 11.10及更早版本
默认情况下,Ubuntu中不使用sudo
组:
-
安装过程中创建的用户属于
admin
组,不属于sudo
; -
没有指南或手册我曾经读过使用
sudo
组的建议; -
没有人觉得需要使用
sudo
组,因为admin
组可以满足所有需求。
相反,在Debian上,在/etc/sudoers
中启用的组是sudo
组,并且没有admin
组。但是,安装期间创建的用户不会放入该组,因为Debian已启用root
帐户。如果你愿意,你应该明确地做。
此外,Fedora与Debian类似,启用了root
,并且在安装期间没有用户创建的默认权限。但是在/etc/sudoers
中配置的管理组是更传统的组wheel
。
总之,我认为Ubuntu中的sudo
组没有用处,只是它是Debian的遗产。
第三种解决方案
没有安全性差异。
两者都可以100%无限制地访问操作系统提供的任何内容。
/etc /sudoers的区别在于(ALL)
与(ALL:ALL)
。第一个意味着您可以像任何用户一样运行命令。第二个 – 您可以像任何用户和任何组一样运行命令。
在/etc /sudoers中显示的方式两个组都需要输入自己的密码才能以root身份执行命令。
两者都可以像这样的root shell:
sudo su