Linux基础命令[24]-su

文章目录

    • [1. su 命令说明](#1. su 命令说明)
    • [2. su 命令语法](#2. su 命令语法)
    • [3. su 命令示例](#3. su 命令示例)
      • [3.1 不加参数](#3.1 不加参数)
      • [3.2 -(登录)](#3.2 -(登录))
      • [3.3 -c(执行命令)](#3.3 -c(执行命令))
    • [4. 总结](#4. 总结)

1. su 命令说明

su:以用户身份执行命令,基本信息如下:

复制代码
Usage:
 su [options] [-] [USER [arg]...]

Change the effective user id and group id to that of USER.
A mere - implies -l.   If USER not given, assume root.

Options:
 -m, -p, --preserve-environment  do not reset environment variables
 -g, --group <group>             specify the primary group
 -G, --supp-group <group>        specify a supplemental group

 -, -l, --login                  make the shell a login shell
 -c, --command <command>         pass a single command to the shell with -c
 --session-command <command>     pass a single command to the shell with -c
                                 and do not create a new session
 -f, --fast                      pass -f to the shell (for csh or tcsh)
 -s, --shell <shell>             run shell if /etc/shells allows it

 -h, --help     display this help and exit
 -V, --version  output version information and exit

For more details see su(1).

基本参数如下:

选项 作用
-m, -p, --preserve-environment 不重置环境变量
-g, --group 指定主组
-G, --supp-group 指定附加组
-, -l, --login 登录 shell
-c, --command ,--session-command <命令> 使用 -c 向 shell 传递一条命令
-f, --fast 向shell 传递 -f 选项(csh 或 tcsh)
-s, --shell 若 /etc/shells 允许,则运行 shell
-h, --help 显示此帮助并退出
-V, --version 输出版本信息并退出

2. su 命令语法

shell 复制代码
su [options] [-] [USER [arg]...]

3. su 命令示例

3.1 不加参数

当前若为 root 用户,使用 su 切换用户不需要密码,且不会改变目录和环境变量。

shell 复制代码
[root@localhost home]# ls
aaa  demo1  demo2  root2  tuser15
[root@localhost home]# su demo2
[demo2@localhost home]$ pwd
/home
[demo2@localhost home]$ ls
aaa  demo1  demo2  root2  tuser15
[demo2@localhost home]$ 

若当前用户为普通用户,使用 su 切换用户时,需要输入密码,如果 su 不加用户名,则切换至 root 用户。

shell 复制代码
[demo2@localhost home]$ su tuser15
Password: 
[tuser15@localhost home]$ su
Password: 
[root@localhost home]# 

3.2 -(登录)

su - 相当于使用用户登录了系统,所以切换用户的同时,会直接定位到该用户的家目录,且使用该用户的环境变量。

shell 复制代码
[root@localhost home]# su - tuser15
Last login: Tue Apr 23 10:42:35 PDT 2024 on pts/0
[tuser15@localhost ~]$ pwd
/home/tuser15
[tuser15@localhost ~]$ 

3.3 -c(执行命令)

-c 以用户身份执行后面的命令。

shell 复制代码
[root@localhost ~]# su - tuser15
Last login: Tue Apr 23 10:51:01 PDT 2024 on pts/0
[tuser15@localhost ~]$ su - root -c "ls"
Password: 
anaconda-ks.cfg  original-ks.cfg  thome  thome3
[tuser15@localhost ~]$ ls
[tuser15@localhost ~]$ su - root
Password: 
Last login: Tue Apr 23 10:52:38 PDT 2024 on pts/0
[root@localhost ~]# ls
anaconda-ks.cfg  original-ks.cfg  thome  thome3
[root@localhost ~]# 

4. 总结

su 以别的用户身份去执行接下来的命令,或直接切换到某个用户。root 用户切换到普通用户时,不需要密码。

相关推荐
雪落漂泊44 分钟前
Liunux进程(七):程序控制篇(中)
linux·运维·windows
分布式存储与RustFS1 小时前
工作流脚本和依赖 JAR 散在各节点本地盘:用 DolphinScheduler 资源中心接到 RustFS
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
俊俊几年的1 小时前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
星恒随风10 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
可乐ea13 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
唐墨12314 小时前
linux kernel 比较数据大小的宏定义
linux·算法
程序开发阿元14 小时前
密码不进工具:一个独立开发者的服务器凭据管理办法
linux·ssh
分布式存储与RustFS17 小时前
群晖 NAS 被 C3RB3R 锁了:本地备份一起被加密,RustFS 对象锁为什么删不掉
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
真好啊又活了一天17 小时前
服务器和虚机配置IPV6
运维·服务器·github
zixu_star18 小时前
定时任务是什么?从日常自动化到 AI 应用,软件如何自动执行任务?
运维·人工智能·自动化