当前位置: 首页 > news >正文

【Linux】su 命令的运行原理以及su切换用户默认继承环境配置

一、su 命令的运行原理

原理解释:

su(switch user)命令用于在Linux和Unix系统中切换用户身份。

  • 当你执行   su 命令时,系统会创建一个新的进程,通常是一个新的 shell 实例。
  • 这个新进程会以目标用户的身份运行,前提是你提供了正确的密码(同时需要有权限切换到目标用户)。
  • 切换用户后,系统会设置某些新的环境变量,包括   USER    HOME 等。
  • 默认情况下,su 不会加载目标用户的环境配置(如  .bash_profile 或  .bashrc

使用场景:

su命令通过验证用户密码和创建新的进程来实现用户身份的切换。它允许用户在不退出当前会话的情况下,以不同的用户身份执行命令。

su命令常用于系统管理员需要以不同用户身份执行特定任务的场景,尤其是在需要更高权限(如root权限)时。


二、为什么说 “默认情况下,su 不会加载目标用户的环境配置”

详细解释:

        当你使用 su 命令切换到另一个用户时,系统不会自动加载该目标用户的环境配置文件。这些环境配置文件通常包括用户的个性化设置,例如环境变量、命令别名、路径设置等。这意味着你可能会在一个没有目标用户自定义环境设置的环境中工作。

        类似于你要玩别人的游戏账号,但是你不能使用别人账号的个性设置。

【疑问】su命令切换用户不会读取和执行该用户的环境配置文件,那该目标用户使用的是谁的环境配置文件?

答:切换后的用户会使用当前用户的环境配置。

(用户A切换到用户B,用户B的环境使用的是用户A的)

  • 这意味着如果当前用户在其配置文件中定义了某些环境变量或别名,目标用户在切换后会继承这些设置。

三、如何获取并使用目标用户自己的环境配置

命令:

使用 su - 或 su --login

        使用 su - <username> 或 su --login <username>,系统会模拟完整的登录过程,这时目标用户的环境配置文件(如 .bashrc 或 .bash_profile)会被读取和执行。在这种情况下,目标用户将获得其自己的完整环境设置


http://www.mrgr.cn/news/47162.html

相关文章:

  • LabVIEW启动时Access Violation 0xC0000005错误
  • ANSYS Fluent学习笔记(六)求解器三部分
  • CSS:定位
  • 给DevOps加点料:融入安全性的DevSecOps
  • 【git】-3 github创建远程仓库,上传自己的项目,下载别人的项目
  • HarmonyOS Next系列之华为账号一键登录功能实现(十四)
  • 【测试】——测试管理工具禅道 介绍与使用
  • C# 两个进程/exe通讯方式 两个应用程序通讯方式
  • 【WKWebview】WKWebView Cookie 同步
  • 用GPT-4o打造LLM+OS(10+实用技能),代码开源,指令曝光,科技演示惊艳全场!
  • js面试题
  • 【面试宝典】深入Python高级:直戳痛点的题目演示(上)
  • Netty的组件
  • 每日论文10-24MWTL基于二极管的ku波段压控振荡器分段线性调谐设计
  • 「OC」NSArray的底层逻辑和遍历方法
  • vscode快速删除一行的快捷键不管用
  • 量子计算场景实用秘籍:开物SDK之自动确定惩罚系数
  • OceanBase管理着工具-oat安装
  • C++单例模式
  • 2015年国赛高教杯数学建模D题众筹筑屋规划方案设计解题全过程文档及程序
  • DAY5 数组
  • ABC340
  • 人像抠图怎么好看?1分钟教会你
  • 【高等代数笔记】线性空间(十九-二十四上半部分)
  • LangChain: AI大语言模型的新篇章
  • 2.1 App测试与发布指南