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 -->语法检查