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用户

linux sudo 命令无法执行 linux中的sudo命令_linux sudo 命令无法执行


输入exit 时,切换到原来的用户

linux sudo 命令无法执行 linux中的sudo命令_linux sudo 命令无法执行_02

(2)su (要切换的用户名)

从root用户 切换到了 song用户 注意:从root切换到别的用户是不用输入密码的

linux sudo 命令无法执行 linux中的sudo命令_服务器_03

假设如果有很多人管理这个主机的话,那不是很多人要知道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命令

linux sudo 命令无法执行 linux中的sudo命令_服务器_04


输入visudo后找到这里,给你想要的用户,添加权限

按i进入 vim编程模式,写完,按Esc,然后 :wq! 保存强制退出就好啦

linux sudo 命令无法执行 linux中的sudo命令_linux_05

2、示例

sudo passwd (用户名) #为用户设置密码

下图显示为 uxdb用户 设置了密码 ,注意这个更改的是进入 系统uxdb用户,不是数据库的用户

linux sudo 命令无法执行 linux中的sudo命令_linux_06