![Sudo 权限仅限于特定用户组](https://linux22.com/image/783696/Sudo%20%E6%9D%83%E9%99%90%E4%BB%85%E9%99%90%E4%BA%8E%E7%89%B9%E5%AE%9A%E7%94%A8%E6%88%B7%E7%BB%84.png)
我正在配置我们的新 Ubuntu 22.04 VPS 来托管我们的 React 应用程序和 REST API。
我遵循了这个看起来相对先进和完整的教程:
https://gofoss.net/server-hardening-advanced/
我目前正在调整 sudo 访问权限。
在这个教程中,他们写道:“特权访问应仅限于特定组的用户”,
并提供了执行此操作的步骤,如下所示:
- 创建一个名为“mysudos”的组:
sudo groupadd sudousers
- 将您的“myadmacc”管理员用户添加到此组:
sudo usermod -a -G mysudos myadmacc
- 备份“/etc/sudoers”配置文件:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")
- 在“/etc/sudoers”文件中添加以下行:
%mysudos ALL=(ALL:ALL) ALL
- 将提升的权限访问限制为 mysudos 组:
sudo dpkg-statoverride --update --add root mysudos 4750 /bin/su
- 检查权限:
ls -lh /bin/su
终端应该显示“mysudos”。
但是终端显示:-rwsr-x--- 1 root mysudos 55K Feb 21 2022 /bin/su
此外,在“/etc/sudoers”文件中,我可以看到:
# 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
%mysudos ALL=(ALL:ALL) ALL
看来我的新特定组“mysudos”已被正确授予sudo权限,但“admin”和“sudo”权限尚未受到限制。
问题 1:创建具有 sudo 权限的特定组真的是好做法吗?
问题 2:如果我们创建这个特定的组,如果这样做的目的是将 sudo 权限限制为默认管理员组,那么我们是否应该删除现有组(“admin”、“sudo”)对 sudo 权限的访问?该怎么做?
答案1
问题 1:是的,创建具有 sudo 权限的特定组被视为一种很好的做法,因为它可以更精细地控制谁有权访问提升的权限。
问题 2:是的,如果目的是将 sudo 权限仅限于新的特定组,则需要删除对现有组(如“admin”和“sudo”)的访问权限。
可以通过注释掉或删除“/etc/sudoers”文件中的相应行来实现。例如,您可以注释掉以下行:
admin 组的成员可以获得 root 权限
%admin ALL=(ALL) ALL
允许组 sudo 成员执行任何命令
%sudo ALL=(ALL:ALL) ALL
这样做之后,只有新的特定组“mysudos”才有权访问 sudo 权限。