“su”和”su -“之间的区别

主要区别

“su”和”su -“之间的区别在于切换用户时是否加载目标用户的环境变量。

介绍

1.“su”命令

使用“su”命令切换用户时,默认不加载目标用户的环境变量当前用户切换到目标用户后,环境变量仍然保持当前用户的设置,而不会加载目标用户的环境变量。

这意味着,在切换用户后,当前用户可能无法访问目标用户的特定路径、命令或配置。

2.”su -“命令

使用“su -“命令切换用户时,会加载目标用户的完整环境变量当前用户切换到目标用户后,环境变量将被更新为目标用户的环境变量设置。

这意味着,在切换用户后,当前用户将拥有与目标用户相同的环境变量,包括路径、命令和配置通常情况下,建议使用”su-“命今切换用户,以确保获得目标用户的完整环境变量。

这对于需要使用目标用户特定设置和配置的操作是非常有用的,例如在目标用户的家目录下执行脚本或命令需要注意的是,在切换用户时,应谨慎使用root用户权限,确保只在必要时使用,并遵循最佳安全实践。

图片[1] - “su”和”su -“之间的区别 - 正则时光

如何使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
喜欢就支持一下吧
点赞12 分享