sudo -i 的行为与 sudo su 不同 -

sudo -i 的行为与 sudo su 不同 -

如果我作为非 root 用户(但在 sudoers 文件中)执行此操作sudo -i,我将获得 root 权限:

laptop:~$ sudo -i
[sudo] password for bjmgeek: 
laptop:~$ whoami
root
laptop:~$ id
uid=0(root) gid=0(root) groups=0(root)
laptop:~$ 

但是,请注意提示符仍然显示 a $(通常表示普通用户),而不是 a #(通常表示 root)。

但是,如果我这样做sudo su -,我也会成为 root,但会得到 # 提示符:

laptop:~$ sudo su -
-bash-5.2# whoami
root
-bash-5.2# id
uid=0(root) gid=0(root) groups=0(root)

根据手册页,su -将 shell 作为登录 shell 启动。并且,根据手册页,sudo -i将 shell 作为登录 shell 启动。那么,使用 a 得到提示#和使用 a 得到提示有什么区别呢$

这是在 Debian 系统上,但我不认为susudo命令有任何特定于 Debian 的内容。

\$我想知道它是否与 root 用户应显示 # 和非 root 用户显示 $是否特别相关。

更新:$PS1forsudo -i设置为\h:\[\e[1;34m\]\w\[\e[0m\]$而不是以 a 结尾\$,所以这就是问题的原因。现在我只需要梳理所有文件,看看哪些设置不正确。

相关内容