Skip to content

Latest commit

 

History

History
27 lines (20 loc) · 2.07 KB

SUDO.md

File metadata and controls

27 lines (20 loc) · 2.07 KB

sudo -> super user do

sudo原理

要想使一个用户具有使用sudo的能力,需要让root用户将其名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息注册到/etc/sudoers文件中,即完成对该用户的授权(此时该用户称为“sudoer”)才可以。

sudo 与 su

意义不同

sudo的意义在于让普通用户在不知道root密码的情况下行使root权限

输入密码不同

sudo 命令需要输入当前用户的密码,su 命令需要输入 root 用户的密码。

行为不同

sudo一般是加命令,暂时切换到超级用户模式以执行超级用户权限。在一定的时间段内,再次执行sudo的命令时不再询问密码 su则是切换到某某用户模式,提示输入密码时该密码为切换后账户的密码。如果后面不加账户时系统默认为root账户

对之后命令的影响不同

sudo 命令只允许使用提升的权限运行单个命令,而 su 命令会启动一个新的 shell,同时允许使用 root 权限运行尽可能多的命令,直到明确退出登录。

su 与 sudo

su是申请切换root用户,需要申请root用户密码。有些Linux发行版,例如ubuntu,默认没有设置root用户的密码,所以需要我们先使用sudo passwd root设置root用户密码。

而sudo su是当前用户暂时申请root权限,所以输入的不是root用户密码,而是当前用户的密码。sudo是用户申请管理员权限执行一个操作,而此处的操作就是变成管理员。

su 中的 -

su 用以切换成不同的用户的身份,而且默认只是切换身份,并没有切换环境变量,环境变量依然是普通用户的。切换用户身份时,用户的环境变量也切换成新用户的环境变量,所以"-"不能省略,不然有些操作无法执行。(加上 - 后环境变量是变成新用户的还是携带旧用户的?) su rootsu输入root密码后切换之root用户但是pwd目录不变 su - rootsu - 输入root密码后切换之root用户但是pwd目录/root