You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何阻止sudo用户修改root用户密码

如何阻止sudo用户修改root用户密码

嗨,作为过来人完全理解你的顾虑——给团队成员sudo权限让他们装软件,但又怕有人改root密码搞出乱子,确实得找个平衡的办法。下面分享几个实用的方案,你可以根据实际情况选:

1. 最小权限原则:只授予安装应用的必要权限

这是最稳妥的方式,毕竟用户只需要装软件,根本不需要全量sudo权限。你可以通过visudo编辑sudoers文件,给特定用户(或用户组)只开放包管理相关的命令:

比如针对Debian/Ubuntu系统:

# 给单个用户授权
alice ALL=(ALL) /usr/bin/apt, /usr/bin/apt-get, /usr/bin/dpkg

# 给用户组授权(先创建installers组,再把用户加进去)
%installers ALL=(ALL) /usr/bin/apt, /usr/bin/apt-get, /usr/bin/dpkg

针对RHEL/CentOS/Fedora系统:

alice ALL=(ALL) /usr/bin/dnf, /usr/bin/yum, /usr/bin/rpm

这样用户只能用这些命令安装/卸载软件,连修改密码的途径都碰不到,安全系数最高。

2. 禁止特定修改密码的命令

如果确实需要给用户更多sudo权限,但就是要阻止改root密码,可以在sudoers里添加禁止规则。同样用visudo编辑,比如:

alice ALL=(ALL) ALL, !/usr/bin/passwd, !/usr/bin/passwd root, !/usr/bin/vim /etc/shadow, !/usr/bin/nano /etc/shadow

这里的!表示“禁止执行”,意思是alice可以用所有sudo命令,但不能运行passwdpasswd root,也不能用vim/nano编辑存储密码的/etc/shadow文件。

不过要注意,这种方式有局限性——用户可能用其他编辑器(比如emacs)或者通过其他间接方式修改密码,所以如果不是万不得已,还是优先用第一种方法。

重要提醒

编辑sudoers文件一定要用visudo命令,不要直接用编辑器打开!因为visudo会自动检查语法错误,如果写错了,它会提示你,避免出现保存后sudo失效的尴尬情况。

备注:内容来源于stack exchange,提问作者Nipun

火山引擎 最新活动