本文共 680 字,大约阅读时间需要 2 分钟。
目录
在实际工作中,曾经遇到切换用户环境变量无法加载的问题。其原因就是对su 和su -的区别认识有问题。
1、su命令:su不会读取目标用户的环境配置文件
2、su - 命令:su - 读取目标用户的环境配置文件
总结: su
命令与 su -
命令之间有什么区别呢?
前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的)环境,也就是说,su gpadmin,虽然切到了gpadmin用户,但是其工作目录、环境变量依旧是root.
而后者则是创建一个新的环境(由 gpamin 用户 ~/.bashrc
文件所设置的环境),工作目录也同样切换到了gpadmin的家目录.
在切换用户时,时长使用这些命令切来切去,但对其细节掌握不够.
两个命令的最大区别是:
sudo
命令需要输入当前用户的密码su
命令需要输入 root 用户的密码。sudo
命令只允许使用提升的权限运行单个命令su
命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。因此su
命令的默认行为是有风险的,因为用户很有可能会忘记他们正在以 root 用户身份进行工作. 所以sudo相对更加安全.
sudo
命令是以目标用户(默认情况下是 root 用户)的身份执行命令,但是它们会使用 sudoer
所配置的用户名来记录是谁执行命令su
命令是无法直接跟踪记录用户切换到 root 用户之后执行了什么操作。
转载地址:http://jjhqj.baihongyu.com/