Linux:用户切换指令su

简介: Linux:用户切换指令su

su是一个常用的用户切换命令, 用于在不同的用户身份之间切换,下面是它的用法。

image.png

当没有指定username时,su命令默认将root当做username。su命令默认不切换工作目录到目标用户的家目录,只继承原进程的全部环境变量并改变环境变量$HOME和$SHELL(如果目标用户不是root,则再加上$USER和$LOGNAME),是一种non-login shell的登录方式,这会导致很多重要的环境变量并未改变,比如$PATH。

image.png

 -和-l选项以login-shell的方式新建一个shell并切换到指定用户,会进行以下操作:1、清除所有环境变量,除了$TERM以及-w白名单指定的环境变量。2、初始化环境变量$HOME、$SHELL、$USER、$LOGNAME和$PATH。3、切换当前工作目录至目标用户的家目录。4、设置shell的argv[0]为‘-’使这个shell是login-shell。

需要注意的是,login-shell不仅仅会初始化这五个环境变量,而且会读取配置文件,从而模拟一次真实的用户登录,比如对于bash shell,会读取.bashrc中的配置。

   -m和-p选项用于以环境保护的non-login shell的形式切换用户,这比默认情况下的行为还要保守,它甚至不会切换$HOME、$SHELL、$USER和$LOGNAME。在指定了-或-l选项后,此选项会被忽略。

image.png

    -s shell选项用于创建指定的shell而不是使用默认shell,这里要说明的是,一个用户的默认登录shell可以在/etc/passwd中找到。有一种情况是,一个用户的默认登录shell被指定为nologin,这会导致用户无法以此shell登录,这时候可以使用指定的shell登录。

 

image.png

-c command选项用于将一个命令(可含选项)传递给新建的shell,并以目标用户的身份执行,执行完毕后退出目标用户的shell,返回原shell。注意-c选项只能有一个参数,所以如果需要传递有选项的命令,需要使用\转义空格或者将命令与选项使用引号包围。

image.png


  -w list选项是配合-l选项使用的,list中的环境变量在使用login-shell的方式时,将不会被清除,但是需要注意的是,这对$HOME、$SHELL、$USER、$LOGNAME和$PATH无效。

image.png


从上面的代码中我们还可以知道,使用exit能退出新建的bash并返回之前的bash。

目录
相关文章
|
19天前
|
Linux
linux-du指令
`du`命令是Linux系统中查看磁盘使用情况的基本工具之一。通过灵活使用 `du`命令的各种选项,可以准确、高效地获取文件和目录的大小信息,有助于系统管理员进行磁盘空间管理。无论是查找大文件、分析目录结构还是排除特定类型的文件,`du`命令都提供了丰富的功能和灵活的配置。理解和掌握 `du`命令的使用,对于维护和优化Linux系统的磁盘空间至关重要。
20 4
|
2月前
|
Linux Windows
【Linux】-基本指令(下)
【Linux】-基本指令(下)
【Linux】-基本指令(下)
|
14天前
|
安全 Ubuntu Unix
【Linux】基础指令
本文介绍了Linux操作系统的基本概念及特点,强调了其开源性、多用户多任务处理能力、稳定性和安全性。文章重点讲解了多个Linux基础命令,如ls、cd、touch、mkdir、rm、man、cp、mv、cat、less、find、grep、tar等,旨在帮助初学者快速掌握Linux命令行操作,为后续深入学习奠定基础。
40 0
|
2月前
|
Linux
【Linux第一弹】- 基本指令
【Linux第一弹】- 基本指令
35 1
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(三):Linux下操作指令大全
Ubuntu学习笔记,介绍了Linux操作系统中常用的命令和操作,如文件管理、系统信息查看、软件安装等。
47 3
|
2月前
|
Unix Linux 索引
【Linux】-基本指令(上)
【Linux】-基本指令(上)
|
2月前
|
Linux Shell Windows
Linux入门1——初识Linux指令
Linux入门1——初识Linux指令
33 0
Linux入门1——初识Linux指令
|
2月前
|
人工智能 Unix Linux
装杯 之 Linux指令
本文介绍了Linux操作系统的基本命令。首先欢迎各位进入Linux的世界,并展示了`ls`命令,用于列出目录下的文件和子目录。接着介绍了`pwd`命令,用于显示当前目录;`cd`命令,用于切换目录;`mkdir`命令,用于创建目录;`touch`命令,用于创建普通文件或修改文件时间戳;`rmdir`命令,用于删除空目录;以及`rm`命令,用于删除文件或目录。通过这些基本命令,你可以开始探索和管理Linux系统。
|
4月前
|
存储 Linux
Linux专栏08:Linux基本指令之压缩解压缩指令
Linux专栏08:Linux基本指令之压缩解压缩指令
58 4
|
4月前
|
Linux
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
Linux专栏09:Linux基本指令之时间日期指令及关机重启指令
95 2