如果我作为非 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 系统上,但我不认为su
或sudo
命令有任何特定于 Debian 的内容。
\$
我想知道它是否与 root 用户应显示 # 和非 root 用户显示 $是否特别相关。
更新:$PS1
forsudo -i
设置为\h:\[\e[1;34m\]\w\[\e[0m\]$
而不是以 a 结尾\$
,所以这就是问题的原因。现在我只需要梳理所有文件,看看哪些设置不正确。