ubuntu设置sudo/su免密

目的

Ubuntu 22.04 下,执行的时候不需要输入密码

1
sudo su -

方法 1:为当前用户配置免密 sudo(推荐)

因为 sudo su - 实际上就是执行 sudo,只要你对自己的账户配置了免密 sudo,就能做到免密 sudo su -

步骤:

  1. 编辑 sudoers 配置:

    1
    sudo visudo
  2. 在文件末尾加一行:

    1
    your_username ALL=(ALL:ALL) NOPASSWD:ALL

    your_username 替换为你的用户名。

  3. 保存退出。

现在再执行:

1
sudo su -

就不会要密码了。


方法 2:只允许免密执行 su -

如果你想更精细化,不让所有命令都免密,而是 仅对 su - 免密

  1. 先确认 su 的路径:

    1
    which su

    通常是 /bin/su

  2. 编辑 sudoers:

    1
    sudo visudo
  3. 增加:

    1
    your_username ALL=(ALL) NOPASSWD:/bin/su
  4. 保存退出。

这样你执行:

1
sudo su -

就免密了,但其他 sudo 命令还是需要密码。

⚠️ 注意

  • sudo su - 实际上是用 root 身份登录新 shell,等同于拿到 root 权限。
  • 在安全要求高的环境(生产、多人登录服务器),建议不要全局免密,而是针对必要命令(如 systemctl、docker、kubectl 等)设置。