这篇文章通过具体的示例来介绍Linux下su命令的常见用法。

事前准备

  • 准备如下用户
用户名 密码
liumiao liumiaocn
liumiaocn liumiaocn
  • 操作系统:CentOS 7
[root@liumiaocn ~]# useradd liumiao
[root@liumiaocn ~]# useradd liumiaocn
[root@liumiaocn ~]# passwd liumiao
Changing password for user liumiao.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
[root@liumiaocn ~]#
[root@liumiaocn ~]# passwd liumiaocn
Changing password for user liumiaocn.
New password:
BAD PASSWORD: The password contains the user name in some form
Retype new password:
passwd: all authentication tokens updated successfully.
[root@liumiaocn ~]#
[root@liumiaocn ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@liumiaocn ~]#

用法1: 切换用户

su是switch user的缩写,自然就是完成切换用户之用,比如:

[root@liumiaocn ~]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@liumiaocn ~]# su liumiao
[liumiao@liumiaocn root]$ id
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiao@liumiaocn root]$

注意事项:

  • 从root切换为其他用户,不需密码输入,否则需要输入密码
  • su 用户名 和 su - 用户名方式的区别在于是否读入用户配置信息
[liumiao@liumiaocn root]$ id
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiao@liumiaocn root]$
[liumiao@liumiaocn root]$ su liumiaocn
Password:
[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$

用法2: 非交互式输入密码

如果希望嵌在脚本中,则往往需要使用非交互方式输入密码,可考虑使用如下方式:

[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ su liumiao <<!
> liumiaocn
> id
> !
Password: uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$
[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$
[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ su - liumiao <<!
> liumiaocn
> id
> !
Password: Last login: Fri Aug 21 08:49:21 EDT 2020
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ 

用法3: 指定用户执行指定命令

[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ su -l liumiao -c id
Password:
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$

或者

[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ su -c id liumiao
Password:
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$

用法4: su -切换为root用户

[liumiaocn@liumiaocn root]$ su -
Password:
Last login: Fri Aug 21 08:38:34 EDT 2020 from gateway on pts/0
Last failed login: Fri Aug 21 08:47:59 EDT 2020 on pts/0
There was 1 failed login attempt since the last successful login.
[root@liumiaocn ~]#

用法5: 使用当前环境变量切换用户su -p

[liumiaocn@liumiaocn root]$ id
uid=1001(liumiaocn) gid=1001(liumiaocn) groups=1001(liumiaocn) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[liumiaocn@liumiaocn root]$ echo $HOME
/home/liumiaocn
[liumiaocn@liumiaocn root]$ su -p liumiao
Password:
bash: /home/liumiaocn/.bashrc: Permission denied
bash-4.2$ echo $HOME
/home/liumiaocn
bash-4.2$ id
uid=1000(liumiao) gid=1000(liumiao) groups=1000(liumiao) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
bash-4.2$

Linux基础:su命令使用方法介绍相关推荐

  1. linux系统rz,rz:Linux下rz命令使用方法介绍

    今天来聊聊一篇关于rz:Linux下rz命令使用方法介绍的文章,现在就为大家来简单介绍下rz:Linux下rz命令使用方法介绍,希望对各位小伙伴们有所帮助. rz命令可以批量上传文件,当然也可上传单个 ...

  2. linux test 使用方法,Linux系统test命令使用方法介绍

    Linux系统中有时需要检测某个条件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就随小编一起来学习下Linux系统中如何使用test命令吧. 1.判断一个命令的结果使用 ...

  3. linux su无效_如何处理Linux中su命令无反应的情况

    在前面的文章有介绍过su命令,su命令用于普通用户和超级用户的切换,但在有些系统中,使用su命令无反应,那么遇到这种情况该如何处理呢?下面随小编一起来看看Linux下su命令无反应的处理方法. 出现问 ...

  4. kali linux nmap使用教程,kali linux下nmap的使用方法介绍

    知道kali 是什么吗,那么linux下nmap的使用方法是怎么回事呢,下面是学习啦小编跟大家分享的是kali linux下nmap的使用方法介绍,欢迎大家来阅读学习. kali linux下nmap ...

  5. 250g硬盘linux分区,linux分区格式化命令使用方法

    linux分区格式化命令使用方法 首先使用root权限登陆进入linux操作界面 使用fdisk -l 参数查看设备名跟设备状态 类似如下 : [root@ecofe2 /]# fdisk -l Di ...

  6. uniq 去除重复命令使用方法介绍

    Linux Shell学习:uniq命令使用方法介绍uniq命令的作用:显示唯一的行,对于那些连续重复的行只显示一次!接下来通过实践实例说明. [关键字] Linux Shell uniq 看test ...

  7. linux rpm 查找,Linux下 rpm 命令查询方法

    [root@wang /]# rpm -qa // 查看安装所有包 [root@wang /]# rpm -qa |grep vim // 查询所安装的包 +包名 [root@wang /]# rpm ...

  8. linux root 密码 鉴定故障,linux的su命令鉴定故障

    linux下的su命令有时会出现鉴定故障的问题该怎么解决呢?下面由学习啦小编为大家搜集整理了linux的su命令鉴定故障的相关知识,希望对大家有帮助! linux的su命令鉴定故障一 情况一 有两个用 ...

  9. Linux基础shell命令 ls

    Linux基础shell命令 ls ls 用来展示目录文件 man ls :官方文档显示所有的ls用法(其他命令也可用相同方法查看文档) ls [命令符选项] [文件路径(相对路径绝对路径均可)] [ ...

  10. linux 命令 mpstat,Linux使用mpstat命令的方法

    在Linux系统操作中,需要使用命令来实时监控Linux系统的CPU使用率,而这样的命令有很多(详见系统之家怎么使用Linux命令查看CPU使用率),mpstat命令就是其中的一种,下面小编就给大家介 ...

最新文章

  1. matlab画复变函数,科学网—复数复变函数的Matlab计算与绘图 - 周铁戈的博文
  2. Tomcat启动之异常java.lang.IllegalStateException
  3. 《从零开始学Swift》学习笔记(Day 7)——Swift 2.0中的print函数几种重载形式
  4. UA MATH571A R语言回归分析实践 一元回归3 NBA球员的工资
  5. Mysql 死锁过程及案例详解之清空缓存锁Flush Lock
  6. Top-down与Bottom-up
  7. 服务器出生点配置文件,服务器设置出生点
  8. 仅需 5 步,用 JavaScript 直接通过前端发送电子邮件
  9. bzoj 1697: [Usaco2007 Feb]Cow Sorting牛排序(置换)
  10. 2. MFC编程——各函数作用
  11. 发现一款好用的在线项目管理工具(有免费版)
  12. Comparator用法中o1-o2的问题
  13. python音频频谱_Python 读取WAV音频文件 画频谱的实例
  14. beacon设备使用记录
  15. SQL中DATEADD和DATEDIFF的使用方法
  16. 扰码器(一)扰码器综述及设计思路
  17. JS实现小球碰撞边界反弹-点击消失(详细解析实现思路)
  18. Linux 模拟基于进程的隐蔽通道(修改文件名)
  19. 移动硬盘不小心格式化怎么恢复?
  20. 一个统计类型的小程序应用

热门文章

  1. 通过谷歌Google轻松拥有自己的站内搜索代码
  2. 英语发音规则---ea字母组合发音规律
  3. mysql如何创建用户代码_Mysql 创建用户 受权_mysql
  4. JavaScript 数组和函数
  5. 别让Java对象逃逸(Object Escape)
  6. 操作系统-速记版(个人幕布导出)
  7. 移动视频客户端详细对比
  8. CSS3中的元素过渡属性transition
  9. 【题目】[USACO5.2]蜗牛的旅行Snail Trails
  10. 德国计算机留学难度,德国留学,真的很难毕业吗?德国留学生的真实感受