# su 命令
>[info]
**su命令**用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
在不加参数的情况下,**su命令**默认表示切换到root用户,之后只要输入root密码就可以切换身份为root了,操作完成后,使用`exit`或者`Ctrl+D`可以退出root切换到原先的用户。
### 语法
su (选项) (参数)
### 选项
`-`或`-l`或`--login` 改变身份时,也同时变更工作目录,以及HOME、SHELL、USER、logname。此外,也会变更PATH变量
### 参数
指定要切换的目标用户
## 不加参数切换到root用户
~~~
[luo@localhost ~]$ su
口令: # 这里输入root用户密码
[root@localhost.localdomain /home/luo]
# pwd
/home/luo
[root@localhost.localdomain /home/luo]
# exit
exit
[luo@localhost ~]$
~~~
>[info]
**su命令**后面还可以加上一个`-`参数,加上这个参数后,切换成root用户时,不但身份变成root,而且还能应用root的用户环境(所谓的用户环境就是`/etc/passwd`中自定义的用户家目录、使用Shell,以及关于这个用户的个性化设置等)。
## 增加参数切换到root用户
~~~
[luo@localhost ~]$ su -
口令: # 这里输入root用户密码
[root@localhost.localdomain ~]
# pwd
/root
[root@localhost.localdomain ~]
# exit
[luo@localhost ~]$
~~~
## `su - param`切换到指定用户
~~~
[luo@localhost ~]$ su - rose
口令: # 输入rose用户密码
[rose@localhost ~]$ pwd
/home/rose
[rose@localhost ~]$
~~~
>[danger]
注意:从普通用户切换到root用户需要提供密码,从root切换到普通用户不需要密码 **su命令**虽然很方便,但是缺陷也很明显,就是切换成其他用户的时候需要知道对方密码。
如果需要切换到root用户就需要root密码,root是系统权限最高的用户,如果让太多人知道root密码,必然会不安全。为了解决这个问题我们可以使用**sudo命令**
- Linux的安装
- Linux的软件安装管理
- Linux零碎的命令
- 了解ssh
- 系统调优及安全设置
- Linux系统中的硬链接和软连接
- Linux文件和目录的属性及权限
- 命令总结
- 文件目录管理命令
- cat
- cd
- cp
- ls
- mkdir
- mv
- rm
- touch
- vi
- 硬件检测内核shell命令
- echo
- alias
- dd
- diff
- date
- grep(重要)
- head
- rpm
- sed(重要)
- tree
- unalias
- yum
- seq
- su
- less
- more
- tail
- awk(重要)
- pwd
- history
- whoami
- find(重要)
- which
- vimdiff
- sudo
- wget
- ln
- chmod
- chown
- vim常用技巧
- scp
- 工作场景应用总结
- 自动删除n天前日志
- 删除一个目录下的所有文件但保留一个文件
- Linux软件安装
- php安装(apache版本)
- vsftpd安装
- git安装
- python安装
- LNMP安装
- LAMP安装I
- LAMP安装II
- svn安装
- svn在Linux下的命令操作
- svn钩子简介
- svn代码上传流程
- Crond介绍
- sersync应用指南
- 其他
- 小结一
- 系统调优重新整理tmp
- linux禁止root用户直接登录sshd并修改默认端口