Linux中 su 和 sudo的区别
学习目标
- Linux中 su 和 sudo的区别
- 一、为什么会有su和sudo 命令?
- 二、su的用法
- 三、sudo的用法
一、为什么会有su和sudo 命令?
因为我们在实际工作中需要在Linux系统中来回切换不同的用户。root用户时权限最高的,所以在很多时候我们需要切换到root用户来执行一些命令。等一些重要命令执行完毕后,为了避免在root用户下不小心在修改别的配置文件,我们需要及时将root用户 在切换为 普通用户。
因此 su 和 sudo 就是为了解决这些问题的。
二、su的用法
su (英文全拼:switch user)命令用于变更为其他使用者的身份。
示例:
(1)su #默认切换到root用户,输入root密码切换root用户,最后执行exit命令可以切换到原先的用户
这里的密码默认是不显示的,下图从 song用户 切换到了 root用户
输入exit 时,切换到原来的用户
(2)su (要切换的用户名)
从root用户 切换到了 song用户 注意:从root切换到别的用户是不用输入密码的
假设如果有很多人管理这个主机的话,那不是很多人要知道root的password,并且可能有的人仅仅只是操作一次,那么这个时候,su 方式就不是很好,root的password当然是越少人知道越好,越少人知道就越安全,这时就须要另外一种方式了。 就需要用sudo了
三、sudo的用法
1、sudo的理解:
- sudo可以跳过root用户登录而去执行一些特定命令。比如:sudo passwd user。当然前提是当前登录用户拥有执行该命令的权限。可以通过配置/etc/sudoers 文件来实现。
- Linux sudo命令以系统管理者的身份执行指令,此命令也可以让你切换至其他用户的身份去执行命令
- 相对于使用 su 命令还需要新切换用户的密码,sudo 命令的运行只需要知道自己的密码即可,甚至于,我们可以通过手动修改 sudo 的配置文件,使其无需任何密码即可运行
使用权限:在 /etc/sudoers 中有出现的使用者。
visudo 命令:可以让某某用户可以执行任何的sudo命令
输入visudo后找到这里,给你想要的用户,添加权限
按i进入 vim编程模式,写完,按Esc,然后 :wq! 保存强制退出就好啦
2、示例
sudo passwd (用户名) #为用户设置密码
下图显示为 uxdb用户 设置了密码 ,注意这个更改的是进入 系统uxdb用户,不是数据库的用户