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

Linux_su命令

1、su命令概述

1.1、作用

susubstitute user)用于直接切换用户身份,进入目标用户的 shell 环境。

1.2、密码规则

使用su切换到目标用户,需要输入目标用户的密码,但如果是root用户切其他用户则不需要输入密码。

1.3、退出切换

输入 exit 或按 Ctrl+D 可退出当前用户环境,返回原用户。


2、su命令的使用

su命令的-h如下图:
在这里插入图片描述

可以看到有很多选项,但下面只介绍该命令的基本用法:su [选项] [目标用户]

2.1、目标用户

要切换到的用户,不写默认是 root

2.2、常用选项

2.2.1、无选项切换(su [目标用户]

直接切换到目标用户,但不会加载目标用户的完整环境(如环境变量、~/.bashrc 等配置文件),且工作目录保持为原用户的当前目录

示例

# 普通用户 user 切换到 root(需输入 root 密码)  
user@host:~$ su root  
Password:  # 输入 root 密码  
root@host:/home/user#  # 工作目录仍为原用户的家目录 `/home/user`  

2.2.2、完整环境切换(su - [目标用户]

  • 选项 -(或 -l--login)表示“模拟登录”,会加载目标用户的完整登录环境(包括 ~/.bash_profile~/.profile 等配置文件),并将工作目录切换到目标用户的家目录/root/home/目标用户)。

这是最推荐的切换方式,因为它能保证目标用户的环境与直接登录时一致。

示例

# 普通用户 user 切换到 root(需输入 root 密码)  
user@host:~$ su - root  
Password:  # 输入 root 密码  
root@host:~#  # 工作目录切换为 root 的家目录 `/root`  

2.2.3、执行单条命令(su -c "命令" [目标用户]

选项 -c--command)允许切换到目标用户后执行一条命令,执行完毕自动返回原用户环境。

示例

# 普通用户 user 以 root 身份执行 `ls /root` 命令(需输入 root 密码)  
user@host:~$ su -c "ls /root" root  
Password:  # 输入 root 密码  
anaconda-ks.cfg  initial-setup-ks.cfg  # 输出 /root 目录下的文件  

与通常sudo执行单条指令有所不同:

  • sudo需要输入的密码是当前用户的密码;su -c需要输入的密码是目标用户的密码,也就是说切换到 root 需 root 密码,普通用户知道 root 密码,就可能滥用权限。
  • sudo默认不加载目标用户的环境,保持原用户的环境变量和工作目录(除非显式使用 sudo -i 或 sudo -s 模拟登录);su -c显式切换到目标用户,加载其环境后执行命令。
http://www.xdnf.cn/news/3607.html

相关文章:

  • 西电雨课堂《知识产权法》课后作业答案
  • 删除电脑中的AlibabaProtect
  • 论软件需求管理
  • LLMs Tokenizer Byte-Pair Encoding(BPE)
  • [ Qt ] | 第一个Qt程序
  • MySQL进阶(一)
  • 密码学_加密
  • 高露洁牙膏是哪个国家的品牌?高露洁牙膏哪一款最好?
  • [预备知识]5. 优化理论(一)
  • MySQL基础关键_004_DQL(三)
  • 【学习笔记】深入理解Java虚拟机学习笔记——第2章 Java内存区域与内存溢出异常
  • C++析构函数详解
  • Socat 用法详解:网络安全中的瑞士军刀
  • 部署Superset BI(一)试水
  • 非对称加密算法(RSA、ECC、SM2)——密码学基础
  • 2025年- H18-Lc126-54.螺旋矩阵(矩阵)---java版
  • 【阿里云大模型高级工程师ACP习题集】2.9 大模型应用生产实践(上篇)
  • Android学习总结之jetpack组件间的联系
  • HTTP和HTTPS
  • IntelliJ IDEA
  • 微信小程序
  • Python集合全解析:从基础到高阶应用实战
  • 信息收集新利器:SSearch Chrome 插件来了
  • 如何理解 MCP 和 A2A 的区别?|AI系统架构科普
  • B站Michale_ee——ESP32_IDF SDK——FreeRTOS_5 事件组同步与等待
  • 驱动开发系列56 - Linux Graphics QXL显卡驱动代码分析(三)显示模式设置
  • wpf 输入框 在输入时去除水印
  • 开闭原则与依赖倒置原则区别:原类不变,新增类(功能)vs 接口类不变,原实现类可变
  • 十分钟用Docker搭建功能齐全的Poste.io邮件服务器
  • 分布式理论:常见分布式协议的概览与解析