在 Linux 中,以 su 身份运行与以 root 身份运行相同吗?

在 Linux 中,以 su 身份运行与以 root 身份运行相同吗?

我以为以普通用户身份使用 su 可以让您暂时获得 root 身份,但是遇到了一个问题,当我尝试使用 su 执行 usermod 时,出现“bash:usermod:未找到命令”,而当我以 root 身份登录时,该命令肯定存在。

超级用户和 root 是不同的吗?如果是,我应该注意哪些限制?

答案1

“超级用户”和“root”之间没有区别。但问题是,su(我认为它实际上代表“切换用户”)并不完全模拟您直接以 root 身份登录时获得的环境。例如,通常当您运行 时su,当前 shell 中的环境变量会被转移到您以 root 身份登录的子 shell 中。(除了PATH;请参阅手册页了解详情)

为了解决这个问题,您可以使用-l(或--login)选项su,它将尝试复制您以 root 身份登录时获得的环境。

相关内容