0064. shell命令--visudo

目录

64. shell命令--visudo

功能说明

语法格式

选项说明

实践操作

授权格式


64. shell命令--visudo

功能说明

        visudo 是 Linux 系统中用于安全地编辑 sudoers 文件的命令。sudoers 文件是 sudo 的主要配置文件,它决定了哪些用户和组可以以什么方式执行哪些命令。由于 sudoers 文件的错误配置可能导致系统安全漏洞或拒绝服务(DoS)攻击,因此直接编辑此文件是不推荐的。相反,应该使用 visudo 命令来编辑它,因为它提供了几个安全特性。

        visudo 命令专门用来编辑 /etc/sudoers 这个文件的。授权配置在 /etc/sudoers 这个文件中,默认这个文件是只读权限,它有个专门的工具叫 visudo,这个命令能不仅能编辑这个配置文件,还能对输入内容做语法检测,如果语法有误,会提示错误位置,并且不会保存到配置文件中,它还能指出语法错误。其实 visudo 命令相当于:vim /etc/sudoers。

语法格式

SYNOPSIS
     visudo [-chqsV] [-f sudoers] [-x output_file]

选项说明

-c:启用check-only模式,手动执行语法检查
-q:启用安静模式,此模式下不显示错误信息 
-s:启用严格检查sudoers文件

实践操作

0. 环境准备
# 创建三个用户并设置密码为123456
seq 3|sed -r 's#(.*)#useradd MineGi-\1;echo '123456'|passwd --stdin MineGi-\1#g'|bash
tail -3 /etc/passwd

1. 执行 visudo 对普通用户授权
\cp -rp /etc/sudoers{,.bak}    #操作前备份
ls /etc/sudoers{,.bak}
visudo    #进入配置文件,按100 G键,再按o键,在下面添加下面内容,然后保存退出

MineGi-1 ALL=(ALL) NOPASSWD: ALL
MineGi-2 ALL=(ALL) NOPASSWD: /usr/bin/useradd,/usr/bin/userdel

2. 每次执行visudo并修改内容后,保险起见,需要语法检查
visudo -c    #提示/etc/sudoers: parsed OK,表示无异常

3. 使用快速操作命令增加 sudo 授权
echo "MineGi-3 ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
# 剩下验证步骤,等讲到sudo命令进行验证

授权格式

who     where=(whom)    commands
用户    主机=(以谁的身份) commands
#用户配置可以是:
 username
 #uid
 %groupname
 %#gid
 user_alias
#主机配置:
 ip
 hostname
 Netaddr
 host_alias
#commands配置
 command #命令要绝对路径指定
 cmnd    #命令别名,灵活使用能提高效率
-----------------------------------
在sudo配置中,可能对多个用户配置多个相同命令,这时候可以使用别名来配置。

#定义别名的方法:
ALIAS_TYPE  NAME=item1, item2, item3, ...       NAME:别名名称,必须使用全大写字符;
     ALIAS_TYPE:
     User_Alias    用户别名,别名成员能够是用户,用户组(前面要加%号)
     Host_Alias    定义主机名别名
     Runas_Alias    用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许转换至的用户
     Cmnd_Alias    定义命令别名
需要注意的是:
1.在每一种Alias后面定义的别名 NAME 可以是包含大写字母、下划线连同数字,但必须以一个大写字母开头
2.配置文件中的 Default env_reset 表示重置(就是去除)用户定义的环境变量,也就是说,当你用sudo执行一个命令的时候,你当前用户设置的所有环境变量都是无效的。
 
例如:
 User_Alias  NETADMIN=tom, jerry
 Cmnd_Alias NETCMND=ip, ifconfig, route

 NETADMIN    localhost=(root)    NETCMND

格式简单介绍

待授权的用户或组

机器=(授权角色)

可以执行的命令

user

MACHINE=

COMMANDS

usertest1

ALL=(ALL)

ALL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值