Linux 命令 su 和 sudo 的区别
1、su 命令介绍及主要用法
首先需要解释下 su 代表什么意思。
之前一直以为 su 是 super user,查阅资料之后才知道原来表示 「switch user」。
知道 su 是由什么缩写来的之后,那么它提供的功能就显而易见了,就是「切换用户」。
1.1 – 参数
su 的一般使用方法是:
su <user_name>
或者
su - <user_name>
2、sudo命令介绍及主要用法
首先还是解释下 sudo 命令是什么意思。
sudo 的英文全称是 super user do,即以超级用户(root 用户)的方式执行命令。这里的 sudo 和之前 su 表示的 switch user 是不同的,这点需要注意,很容易搞混。
我们先介绍 sudo 命令能做什么事情,然后说明为何能做到这些,以及如何做到这些。
2.1 主要用法
我们在 Linux 中经常会碰到 Permission denied 这种情况,比如以 ubuntu 用户的身份查看 /etc/shadow 的内容。因为这个文件的内容是只有 root 用户能查看的。
那如果我们想要查看怎么办呢?这时候就可以使用 sudo :
ubuntu@VM-0-14-ubuntu:~$ tail -n 3 /etc/shadow
tail: cannot open '/etc/shadow' for reading: Permission denied # 没有权限
ubuntu@VM-0-14-ubuntu:~$ sudo !! # 跟两个惊叹号
sudo tail -n 3 /etc/shadow
ntp:*:17752:0:99999:7:::
mysql:!:18376:0:99999:7:::
test_user:$6$.ZY1lj4m$ii0x9CG8h.JHlh6zKbfBXRuolJmIDBHAd5eqhvW7lbUQXTRS//89jcuTzRilKqRkP8YbYW4VPxmTVHWRLYNGS/:18406:0:99999:7:::
ubuntu@VM-0-14-ubuntu:~$
sudo 除了以 root 用户的权限执行命令外,还有其它几个用法,这里做简单介绍。
切换到 root 用户:
sudo su -
这种方式也能以 login-shell 的方式切换到 root 用户,但是它和 su – 方法是由区别的:
前者输入 sudo su – 后,需要提供当前用户的登录密码,也就是 ubuntu 用户的密码;
后者输入 su – 后,需要提供 root 用户的登录密码。
sudo -i
3、二者的差异对比
我们已经看到:
使用 su – ,提供 root 账户的密码,可以切换到 root 用户;
使用 sudo su – ,提供当前用户的密码,也可以切换到 root 用户
两种方式的差异也显而易见:如果我们的 Linux 系统有很多用户需要使用的话,前者要求所有用户都知道 root 用户的密码,这显然是非常危险的;后者是不需要暴露 root 账户密码的,用户只需要输入自己的账户密码就可以,而且哪些用户可以切换到 root,这完全是受 root 控制的(root 通过设置 /etc/sudoers 实现的),这样系统就安全很多了。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/91003.html