Welcome 微信登录

首页 / 操作系统 / Linux / Linux基础——sudoers文件的写法

概述

sudoers文件的作用是控制用户可以执行哪些指令。它是Linux系统管理员的重要一课喔。 

文件的组成

sudoers文件由三部分组成: 
  • sudoers的默认配置,主要设置sudo的一些缺省值(本文不会对这些默认配置进行介绍,若有兴趣可以自己man 5 sudoers然后搜defaults)
  • alias(别名),可以看作是变量的定义啦,本文也会全面的说说别名的定义。
  • 规则定义,sudoers文件的重点啦,本文会着重说明规则的定义。 

Alias(别名)

一共有四种类型的别名,这些类型可以看作它们是数据类型啦哈。
  • User_Alias
  • Runas_Alias
  • Host_Alias
  • Cmnd_Alias
那么要如何定义这些Alias呢?语法如下:User_Alias NAME=User_ListRunas_Alias NAME=Runas_ListHost_Alias NAME=Host_ListCmnd_Alias NAME=Cmnd_List 这里的NAME就可以看作是变量名咯。注意,NAME必须是要以大写字母开头,而且只能包含有大写字母,数字,下划线呢。那么User_List,Runas_List,Host_List,Cmnd_List又是什么呢?其实就是以“,"分隔的一个数组啦,只不过这四个别名表示的数组内容都会不同啦。 现在分别看看User_List,Runas_List,Host_List,Cmnd_List的每个数组元素可以是些什么值吧!User:[][username |#uid |%groupname | +netgroup |%:nonunix_group |User_Alias]Runas:[][username|#uid |%groupname | +netgroup |Runas_Alias]Host:[][hostname | ip_addr | network(/netmask)? | netgroup | Host_Alias]Cmnd:[][commandname| directory| "sudoedit" | Cmnd_Alias] 看看上面的元素名就可以知道大概什么意思了吧?这里着重拿些可能有疑问的出来说说。叹号"!"表示取反的意思啦。每个元素都可以是之前定义过的别名变量啦,所以会有User_List,Runas_List,Host_List,Cmnd_List这些元素啦。directory表示有可以进入该目录并执行命令的权限啦"sudoedit"表示允许用户使用sudo -e选项。 如果还没搞懂的话,可以看下面的别名定义的例子:User_Alias USER_TEST=tim,#501,%svn,+webgroup,%:nonunix,!nouserRunas_Alias RUNAS_TEST=tim,#501,%svn,!+webgroupHost_Alias HOST_TEST=!www.baidu.com,localhost,127.0.0.1Cmnd_Alias CMND_TEST=Cmnd_Alias CMDS=/bin/passwd,/bin/ls,/home/svn  

User Specification(用户规则)

用户规则定义的语法如下:User_List Host_List=(Runas_List1:Runas_List2) SELinux_Spec Tag_Spec Cmnd_List,...下面对上面的语法进行说明一下:User_List(必填项):指的是该规则是针对哪些用户的。Host_List(必填项):指的是该规则针对来自哪些主机的用户。Runas_List1(可选项):表示可以用sudo -u来切换的用户Runas_List2(可选项):表示可以用sudo -g来切换的用户组SELinux_Spec(可选项):表示SELinux相关的选项,可选值为ROLE=role 或 TYPE=type。本人对SELinux不太熟,以后再补充这里吧。Tag_Spec(可选项):用于控制后面Cmnd_List的一些选项啦,可选值有下面这些,具体自己man一下吧,这里就不啰嗦了。"NOPASSWD:" | "PASSWD:" | "NOEXEC:" | "EXEC:" | "SETENV:" | "NOSETENV:" | "LOG_INPUT:" | "NOLOG_INPUT:" | "LOG_OUTPUT:" | "NOLOG_OUTPUT:"...(可选项):表示可以有多个(Runas_List1:Runas_List2) SELinux_Spec Tag_Spec Cmnd_List段的意思了。Notice:如果Runas_List1和Runas_List2都没填的话,默认是以root用户执行如果不是很理解的话,可以对比着文章后面举的例子来看下,应该难不倒聪明的我们!
  • 1
  • 2
  • 下一页
Linux软件安装经验总结Linux基础——file命令与magic file相关资讯      Linux sudoers  sudoers 
  • Linux中sudo的用法和sudoers配置详  (今 07:04)
  • sudoers文件解析  (09/18/2015 09:46:05)
  • Ubuntu 用户名 不在 sudoers文件中  (05月11日)
  • Linux怎么添加用户成为sudoers  (06/16/2013 09:14:07)
本文评论 查看全部评论 (0)
表情: 姓名: 字数