统计
  • 文章总数:26 篇
  • 评论总数:0 条
  • 分类总数:2 个
  • 最后更新:昨天 15:34
原创学无止境

Linux系统命令su和su-核心区别

本文阅读 2 分钟
首页 学无止境 正文

su 和 su - 都是 Linux 中切换身份的命令,最核心的差异在于:su 只切换用户权限,而 su - 是完整切换至目标用户的登录环境,这是两者最本质的区别。

Linux系统命令su和su-核心区别

su(非登录式切换)命令

su

使用 su 切换时,系统仅变更用户身份并获得对应权限,但不改变工作目录。例如在 /home/user1 下切换到 root 后,工作目录仍然是 /home/user1。由于保留了原始用户的 PATH 等环境变量,且不会加载目标用户的 Shell 配置文件,因此在运行系统管理命令时,可能因为找不到 /sbin 等路径下的程序而出现“命令未找到”的错误。

su -(登录式切换)命令

su -

su - 会彻底切换至目标用户环境,包含身份权限、家目录及所有环境变量。切换后会自动跳转到目标用户的家目录,环境变量也会重置为默认值,并依次读取 .bash_profile、.bashrc 等登录配置,从而确保系统命令路径的完整性,几乎不会出现命令找不到的错误。

在日常运维或开发中,尤其是需要切换到 root 时,应优先选用 su -。它能避免原用户环境变量造成的干扰,从根源上减少因路径缺失引发的报错,保障操作的稳定与高效。

原创文章,作者:狼道,如若转载,请注明出处:https://wolfsays.com/209.html
Debian 12 服务器系统安装全流程
« 上一篇 07-05