“su -” 与 “su” 命令有什么区别

“su -” 与 “su” 的区别

  • su:切换用户身份,但保留原用户的环境变量(如 PATH、HOME)和非登录 Shell;
  • su -:切换用户身份的同时,加载目标用户的环境变量和登录 Shell,切换到目标用户的 Home 目录,完全模拟目标用户登录后的状态;

实际使用情况

  • 临时切换用户执行简单操作,无需加载目标用户环境时,用 su 用户名;
  • 需完全以目标用户身份工作(如执行依赖其环境变量的命令、配置系统)时,用 su – 用户名(切换到 root 可直接写 su -);