Linux命令之sudo
在 Linux 系统中,由于 root 的权限过大,一般情况下都不使用它。只有在一些特殊情况下才采用登录root
执行管理任务,一般情况下临时使用 root 权限多采用 su 和 sudo 命令。
1.su 和 sudo 命令对比:
在普通用户下输入 su 命令后,会提示输入 root 账户的密码,然后进入特权模式(和使用 root 登录完全一样),输入 exit 退出:
[xiaoming@VM_81_181_centos home]$ clear [xiaoming@VM_81_181_centos home]$ su Password: [root@VM_81_181_centos home]# exit exit [xiaoming@VM_81_181_centos home]$
还有一种方法可以切换到 root 用户:运行 su - 命令,如下:
[xiaoming@VM_81_181_centos home]$ su - Password: [root@VM_81_181_centos ~]#
那么,su 命令和 su - 命令之间有什么区别吗?前者在切换到 root 用户之后仍然保持旧的(或者说原始用户的
环境)环境,而后者则是创建一个新的环境,相当于使用 root 用户正常登录(从登录屏幕登录)
su 命令手册很清楚地说明了这一点:
可选参数 - 可提供的环境为用户在直接登录时的环境
当采用 sudo 命令,只需要输入当前用户的密码即可执行需要 root 权限执行的命令,可以发现使用 sudo 命令普通用户不需要知道
root 的密码即可执行 root 权限的命令
sudo su 命令:
大概是因为使用 su 命令或者以 root 用户身份登录有风险,所以,一些 Linux 发行版本(如:Ubuntu)默认禁用 root 用户账户。鼓励
用户在需要 root 权限时使用 sudo 命令。
然后,你还是可以成功执行 su 命令,而不用输入 root 账户的密码。运行以下命令:
[xiaoming@VM_81_181_centos root]$ sudo su [sudo] password for xiaoming: [root@VM_81_181_centos ~]#
由于使用的是 sudo 运行命令,只需要输入当前用户的密码。所以,一旦操作完成,su 命令将会以 root 用户身份运行
如何配置普通用户有使用 sudo 命令的权限可以参考我的这篇文章:
https://www.cnblogs.com/leeyongbard/p/9513960.html
2.作为 root 这种拥有很强大权限的,切换到普通用户下是不需要输入验证的
可以使用 su 用户名 或 sudo su 用户名
[root@VM_81_181_centos home]# su xiaoming [xiaoming@VM_81_181_centos home]$ [root@VM_81_181_centos home]# sudo su xiaoming [xiaoming@VM_81_181_centos home]$