我正在研究Linux命令行。但是我正在阅读的书说正在su -l(-) username
启动一个新的 shell 会话并加载我想要更改为的用户的环境,但su
事实并非如此。
当我是root用户时,我输入了命令su testuser
,所以我是testuser。但在那之后,我进入了echo "$USER"
,它说testuser
。这意味着它加载了 testuser 的环境,不是吗?有什么不对?
“开始一个新的 shell 会话”到底是什么意思? shell有登录、注销等机制吗?
答案1
苏为您提供 root 权限,但它不会更改 PATH 变量和当前工作目录。所以你不能执行 /usr/sbin 文件夹中的文件。
苏-也更改了 PATH...并且 root 的 home 成为您当前的工作目录。您成为正确的 root 并且可以执行所有命令。