主要区别
“su”和”su -“之间的区别在于切换用户时是否加载目标用户的环境变量。
介绍
1.“su”命令
使用“su”命令切换用户时,默认不加载目标用户的环境变量当前用户切换到目标用户后,环境变量仍然保持当前用户的设置,而不会加载目标用户的环境变量。
这意味着,在切换用户后,当前用户可能无法访问目标用户的特定路径、命令或配置。
2.”su -“命令
使用“su -“命令切换用户时,会加载目标用户的完整环境变量当前用户切换到目标用户后,环境变量将被更新为目标用户的环境变量设置。
这意味着,在切换用户后,当前用户将拥有与目标用户相同的环境变量,包括路径、命令和配置通常情况下,建议使用”su-“命今切换用户,以确保获得目标用户的完整环境变量。
这对于需要使用目标用户特定设置和配置的操作是非常有用的,例如在目标用户的家目录下执行脚本或命令需要注意的是,在切换用户时,应谨慎使用root用户权限,确保只在必要时使用,并遵循最佳安全实践。
如何使su命令也继承环境变量?
要使 su 命令切换到root用户时也能继承环境变量,可以按照以下步骤进行操作:
1.打开终端。
2.输入以下命令以编辑root用户的profile文件
su -c "nano /root/.bashrc"
3.在打开的 .bashrc
文件中,找到 export PS1="\\s-\\vs$
这行代码,并在其下方添加以下代码
if ["$PS1" ]; then
export PS1="\\s-\\v$"
fi
这段代码会检查是否已经设置了PS1环境变量,如果已经设置了,则不会重复设置
4.保存并关闭 .bashrc
文件
5.输入以下命令以重新加载root用户的环境变量
su -c "source /root/.bashrc"
现在,使用 su 命令切换到root用户时,应该就能够继承目标用户的环境变量了。请注意,这种方法只会影响使用 su 命令切换到root用户的情况,并不会影响使用其他命令切换到root用户的情况。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END