shell命令--visudo_标签页shell命令--visudo



shell命令--visudo

0、visudo命令的专属图床

点此快速打开文章【图床_shell命令visudo

1、visudo命令的功能说明

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

2、visudo命令的语法格式

SYNOPSIS
visudo [-chqsV] [-f sudoers]

3、visudo命令的选项说明

授权配置格式:

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
Cmnd_Alias

例如:
User_Alias NETADMIN=tom, jerry
Cmnd_Alias NETCMND=ip, ifconfig, route

NETADMIN localhost=(root) NETCMND
  • -c:手动执行语法检查

4、visudo命令的实践操作

范例1:执行 ​​visudo​​ 对普通用户​​usertest1​​和​​usertest2​​授权

useradd usertest1
useradd usertest2
visudo -->z在99行附近添加下面内容

usertest1 ALL=(ALL) NOPASSWD: AL
usertest2 ALL=(ALL) NOPASSWD: /usr/bin/useradd,/usr/bin/userdel

上面的格式简单介绍

待授权的用户或组

机器=(授权角色)

可以执行的命令

user

MACHINE=

COMMANDS

usertest1

ALL=(ALL)

ALL

每次执行​​visudo​​并修改内容后,需要语法检查

visudo -c

范例2:使用快速操作命令增加 ​​sudo​​ 授权

\cp /etc/sudoers{,.bak}  -->操作前备份
ls /etc |grep sudoers
echo "usertest1 ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c -->语法检查