当前位置: 首页 > 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.lryc.cn/news/461074.html

相关文章:

  • libtorch环境配置
  • 【C语言】define宏定义与const修饰限定
  • 基于深度学习的基于视觉的机器人导航
  • 苍穹外卖学习笔记(二十三)
  • vLLM 推理引擎性能分析基准测试
  • 图像增强论文精读笔记-Kindling the Darkness: A Practical Low-light Image Enhancer(KinD)
  • HALCON数据结构之字符串
  • string模拟优化和vector使用
  • Go-知识依赖GOPATH
  • PyTorch 中 reshape 函数用法示例
  • 安全光幕的工作原理及应用场景
  • 《深度学习》OpenCV LBPH算法人脸识别 原理及案例解析
  • 数据结构之顺序表——动态顺序表(C语言版)
  • Python 网络爬虫入门与实战
  • 成都睿明智科技有限公司电商服务可靠不?
  • fmql之Linux Uart
  • 【火山引擎】调用火山大模型的方法 | SDK安装 | 配置 | 客户端初始化 | 设置
  • 前端实现下载功能汇总(下载二进制流文件、数组下载成csv、将十六进制下载成pcap、将文件下载成zip)
  • iLogtail 开源两周年:UC 工程师分享日志查询服务建设实践案例
  • 【MySQL】入门篇—基本数据类型:NULL值的概念
  • Java设计模式10 - 观察者模式
  • LabVIEW示波器通信及应用
  • 西门子PLC中Modbus通讯DATA_ADDR通讯起始地址设置以及RTU轮询程序设计。
  • 趋势(一)利用python绘制折线图
  • 【含文档】基于Springboot+Vue的采购管理系统(含源码+数据库+lw)
  • 【C++11入门基础】
  • Pytest中fixture的scope详解
  • Springboot 接入 WebSocket 实战
  • 数据结构之红黑树的实现
  • 智能工厂的设计软件 中的AI操作系统的“三维时间”(历时/共时/等时)构建的“能力成熟度-时间规模”平面