Linux 通过 su 命令切换用户

sudo 命令

$ sudo [command]

作用:sudo 命令只需输入当前用户密码就可以得到 root 用户的权限
缺陷:超过一定时间就会失效,并且本质上没有切换用户

sudo -i/sudo su

$ sudo -i
# 或
$ sudo su

通过这种方法输入当前用户的密码就可以进到 root 用户
不能等价于纯粹的使用 root 账户登录到系统里

su

$ su [user]

su 命令可以切换用户,若不指定 user,默认为 root

su 应用举例

变更账号但保持当前工作目录

$ su [user]

举例,变更账号到 root,但保持当前工作目录

$ su
# 或
$ su root

变更帐号并改变工作目录

$ su - [user]
# 或
$ su -l [user]
# 或
$ su --login [user]

举例,变更帐号为 johnhan 并改变工作目录至 johnhan 的 home 目录

$ su - johnhan

变更用户并在执行某个命令后退出该账号并变回原用户

$ su -c [command] [user]
# 或
$ su --command=[commond] [user]

举例,变更用户为 root 并在执行 ls 命令后退出变回原用户

$ su -c ls root

exit

回退到上一个用户

$ exit

可能出现的报错

在使用 su 的过程中,若提示

su:Authentication failure

则有可能是 root 没有设置密码,可尝试下面的命令解决问题

sudo passwd root

提示

  • 在普通用户下,输入 su user 后要键入目标用户密码
  • 在 root 用户下, 输入 su user 直接切换至普通用户,不需要键入密码
  • 由于 root 权限的无限制性,所以 su 并不能担任多个管理员管理系统的工作
  • su 直接将身份变成 root,而 sudo 是以用户登录后以 root 的身份运行命令,不需要知道 root 密码
除特殊说明外本人博客均属原创,转载请注明出处:http://blog.johnhan.cn/blog_1029.html
京ICP备19044523号-1