centeros 每次连接 后 sudo su 都要提示输入密码 怎么去掉

连接服务器后,输入完密码。执行

sudo visudo

方案A:仅针对 sudo su 命令免密(推荐,更安全)

如果你只希望 sudo su 不输密码,其他 sudo 命令仍需密码,添加这一行:
bash

ruixxx ALL=(ALL) NOPASSWD: /bin/su

注意:ruixxx是你的用户账号 ,su 命令的路径在 CentOS 中通常是 /bin/su,可以用 which su 命令确认。如果路径不同,请替换为实际路径。
方案B:为 ruixxx 用户所有 sudo 命令免密(最省事)

如果你希望 ruixxx 用户执行任何 sudo 命令都不需要密码,添加这一行:
bash

ruixxx ALL=(ALL) NOPASSWD: ALL

安全提醒:此配置权限较大,请确保你了解其风险。建议至少保留一个需要密码的 sudo 账户,以便在紧急情况下恢复。

保存退出:在 visudo 中,通常是按 Ctrl+X,然后按 Y 确认,再按 Enter 保存。
✅ 第三步:验证配置

配置完成后,执行以下命令验证是否生效:
bash

sudo -l -U ruixxx

在输出中,应该能看到类似 (ALL) NOPASSWD: /bin/su 的条目,说明规则已正确加载。

之后,执行 sudo su 测试,应该就不会再提示输入密码了。
🔧 如果仍然提示密码,可以检查以下几点:

requiretty 限制:某些系统可能默认要求 sudo 必须在终端中运行。如果遇到相关错误,可以在 sudoers 文件中添加 Defaults:ruixxxx !requiretty 来为当前用户关闭此限制。

规则被覆盖:sudoers 文件的规则是自上而下匹配的。如果文件靠前的位置有 ruixxx ALL=(ALL) ALL 之类的规则,可能会覆盖你新加的免密规则。确保你的 NOPASSWD 规则没有被其他针对 ruixxx 用户的 PASSWD 规则所覆盖。

SELinux 干预:可以尝试临时将 SELinux 设为宽容模式 (setenforce 0) 来测试是否是 SELinux 策略导致的拦截。
此条目发表在linux分类目录。将固定链接加入收藏夹。

发表回复