1、介绍
Linux 是多用户多任务的分时操作系统,共享该系统的用户往往不只一个。但由于root 账户密码的敏感性和root 账号的无限制权限
-
有必要通过useradd 创建一些普通用户,只让他们拥有不完全的权限
-
在必须使用root 用户执行命令的情况下,需要申请root 权限
sudo 命令就是来解决这个需求的。
2、通过命令查看是否可以使用sudo
#申请以root 用户身份执行某一个命令
sudo -u root netdiscover
sudo netdiscover
-
输入当前用户密码。
-
具体某一个用户可以,可以以哪一个用户身份执行某一个命令,是否需要配置
3、sudoers文件
配置⽂件在`/etc/sudoers` ,需要使⽤专⽤编辑器`visudo`。
格式
root ALL=(ALL) ALL
授权⽤户/组 主机=[(⽤户:组)] [是否需要输⼊密码验证] 命令1,命令2,...
字段1 字段2 [(字段3)] 字段4 字段5
ajest ALL=(root) /usr/bin/id, /usr/bin/whoami
ajest ALL=(ALL) /user/bin/id, /usr/bin/whoami
ajest ⽤户可以在任意主机上以root ⽤户身份执⾏id 命令
-
想要通过普通用户,执行root的权限,但是失败了
-
提示:这个用户在sudoers这个文件中不存在,并将要告知ROOT用户
如果想要在普通用户执行ROOT用户权限,可以通过输入命令
visudo
打开sudoers
文件
在第92行,会有修改的内容,格式在本章节开头
大致意思是
这个用户,可以在任何主机,的任何用户上执行任何命令
将其修改为如下内容
允许tom这个用户在任意主机上,执行任意用户的 whoami 命令
这个截图错了
whoami --> /usr/bin/whoami
这个时候,在tom用户下执行whoami命令
此时输入密码后,可以执行
也可以通过这个命令进行查看
sudo -u#UID whoami
eg:
sudo -u#0 whoami