本篇文章主要内容来自(老男孩教育———李导课堂讲解),主要介绍sudo配置和用法,为了给某个用户控制权限比如执行某个命令或者关机操作等,服务器管理员通常会给这个用户配置sudo,接下来就来详细介绍具体的配置方法。
第一篇博客文章,请大家多多给点修改意见,谢谢!!!
环境:
[root@m01-61 ~]# cat /etc/redhat-release
CentOS release 6.8 (Final)
[root@m01-61 ~]# uname -r
2.6.32-642.3.1.el6.x86_64
结构说明
可以通过编辑文件/etc/sudoers来配置,通常使用visudo命令来进行修改,因为如果你修改的格式不符合它会进行提示。接下来就通过一个格式来了解它
= [ []]
chenmh localhost = (root) NOPASSWD: /bin/mkdir test
这里要说明一下root用户的权限代表什么意思,比如一个目录的所有者是root,那么必须具备root用户的权限才能执行相关操作,比如上面的chenmh用户如果它配置的是其它用户比如它自己,那么它在root所有者的目录下面是没权限执行操作的。同样如果这里配置的是哪个用户那么比如mkdir创建的文件夹就的所有者就是哪个用户。默认不指定代表使用ALL
说明: [
配置文件
接下来详细来看看它的配置文件,它的配置文件以及很详细的告诉了我们该怎样使用,在前面一部分是示例怎样将一组权限创建组别名,注意别名需要大写,
## Sudoers allows particular users to run various commands =## (ie, files, LDAP, NIS, etc) file - just use %== /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-= /bin/rpm, /usr/bin/up2date, /usr/bin/= /sbin/service, /sbin/= /usr/bin/= /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/= /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/= /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/= /sbin/= /bin/mkdir, /bin/, because it will show the password ! already when the the env_reset option option only effective configurations disabled or HOME present = += += += += += = /sbin:/bin:/usr/sbin:/usr/==%sys ALL =%wheel ALL=%wheel ALL=%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/%users localhost=/sbin/shutdown -- files /etc//etc/sudoers.d
案例
1.用户别名组中的用户可以在FILESERVERS这组host里面调用root用户执行OTHERS命令组的权限,多个命令组用逗号分隔
ADMINS FILESERVERS=
2.用户chenmh这个用户可以在本机以调用root用户来执行所有的命令
chenmh localhost=
3.用户chenmh可以调用root用户创建目录test,也只能创建test目录
chenmh ALL=(ALL) NOPASSWD: /bin/mkdir test
4.dev组的用户可以执行关机shutdown命令
%dev ALL=(ALL) NOPASSWD:/sbin/shutdown
快捷操作
1.查看当前用户具备的sudo权限
sudo -l
User chenmh may run the following commands on this host: (root) NOPASSWD: /bin/mkdir, /bin/rm
总结
配置sudo记得使用visudo命令,如果配置错误了保存的时候它会有提示。