[命令] Linux 命令 sudo (用户提权)

内容一:sudo 简介

sudo 命令可以让非 root 用户,在不知道 root 的密码的情况之下以 root 的身份执行某一些命令
但是要实现这一目标需要提前修改 sodu 的配置文件

内容二:修改 sudo 配置文件的方法

# visudo

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# sudoedit /etc/sudoers

(注意:此方法可以在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

或者:

# vi /etc/sudoers

(注意:此方法不能在保存退出时检查 sudo 文件有没有语法错误)

内容三:修改 sudo 配置文件的案例

3.1 案例一:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.2 案例二:让 zhumingyu 用户可以通过 sudo 获取所有 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: ALL  
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.3 案例三:让 zhumingyu 用户可以通过 sudo 获取 firewalld 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.4 案例四:让 zhumingyu 用户可以通过 sudo 获取 firewalld 和 chmod 命令的 root 权限,并且免密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: firewalld,chmod
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.5 案例五:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改 root 的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd root
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.6 案例六:让 zhumingyu 用户可以通过 sudo 获取 passwd 命令的 root 权限,并且免密码,但是不能修改以 a 开头命名用户的密码

# vi /etc/sudoers

添加以下内容:

......
zhumingyu ALL=(ALL)   NOPASSWD: !/usr/bin/passwd a.*
......

(说明:在 “root ALL=(ALL)   ALL” 这一行后面仿照着加入一行就行了)

3.7 案例七:让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码

3.7.1 让 zhumingyu 组里的所有用户通过 sudo 获取 passwd 命令的 root 权限,并且免密码
# vi /etc/sudoers

添加以下内容:

......
%zhumingyu ALL=(ALL)    NOPASSWD: /usr/bin/passwd 
......

(补充:% 代表这是一个组而不是一个用户)

(说明:在 “%wheel    ALL=(ALL)    NOPASSWD: ALL” 这一行后面仿照着加入一行就行了)

3.7.2 将相关用户添加到 zhumingyu 组里
# usermod -a -G zhumingyu <user>