sudo切换到某个特定用户免密
在 Linux 里用 sudo 直接切换到某个特定用户(比如 sudo -u username -i)时不需要输入密码。
方法:visudo 配置免密
- 编辑 sudoers 文件
用安全方式编辑:
root账户下操作
1 | sudo visudo |
这样会在保存时自动检查语法,防止配置错导致 sudo 崩掉。
添加免密规则
假设当前登录用户是alice,目标用户是bob,想免密切换到 bob:alice ALL=(bob) NOPASSWD: ALL或者只允许执行 shell(更安全):
alice ALL=(bob) NOPASSWD: /bin/bash如果是要模拟
sudo -u bob -i,可以允许/bin/su:alice ALL=(bob) NOPASSWD: /bin/su - bob测试
1
sudo -u bob -i
如果配置正确,这时不会再提示输入
alice的密码。
安全注意点
- 尽量限制命令范围,不要直接给
NOPASSWD: ALL,否则目标用户权限会被完全暴露。 - 如果只是切换账户跑特定服务脚本,可以把命令路径写死。
- 编辑 sudoers 时别直接用
nano /etc/sudoers,很容易因为语法错锁死 sudo。