su和sudo的区别3

上一篇 / 下一篇  2008-12-11 22:19:17 / 个人分类:Lunix 点滴

  • 文件版本: V1.0
  • 开发商: 本站原创
  • 文件来源: 本地
  • 界面语言: 简体中文
  • 授权方式: 免费
  • 运行平台: Win9X/Win2000/WinXP

3、/etc/sudoers 配置文件中别名规则51Testing软件测试网\F/^W&B2x JR#S

别名规则定义格式如下:51Testing软件测试网6v5pRZ,s

Alias_Type NAME = item1, item2, ...51Testing软件测试网K2\6Q @C rw2j

!];Zh5m2uS"P8{4N0

Alias_Type NAME = item1, item2, item3 : NAME = item4, item5

9_Oy.HK_tC0

别名类型(Alias_Type):别名类型包括如下四种

VWy8wI"tc2Q8i+e l)Y0

Host_Alias 定义主机别名;

}oZL8m0

User_Alias 用户别名,别名成员可以是用户,用户组(前面要加%号)51Testing软件测试网6T8ds/_ d

Runas_Alias 用来定义runas别名,这个别名指定的是“目的用户”,即sudo 允许切换至的用户;

k)}6bm]0

Cmnd_Alias 定义命令别名;51Testing软件测试网 `C2M:|'O z?

NAME 就是别名了,NMAE的命名是包含大写字母、下划线以及数字,但必须以一个大写字母开头,比如SYNADM、SYN_ADM或SYNAD0是合法的,sYNAMDA或1SYNAD是不合法的;51Testing软件测试网%cJ9lA`U

item 按中文翻译是项目,在这里我们可以译成成员,如果一个别名下有多个成员,成员与成员之间,通过半角,号分隔;成员在必须是有效并事实存在的。什么是有效的呢?比如主机名,可以通过w查看用户的主机名(或ip地址),如果您只是本地机操作,只通过hostname 命令就能查看;用户名当然是在系统中存在的,在/etc/paswd中必须存在;对于定义命令别名,成员也必须在系统中事实存在的文件名(需要绝对路径);51Testing软件测试网Z8J(lnP

item成员受别名类型 Host_Alias、User_Alias、Runas_Alias、Cmnd_Alias 制约,定义什么类型的别名,就要有什么类型的成员相配。我们用Host_Alias定义主机别名时,成员必须是与主机相关相关联,比如是主机名(包括远程登录的主机名)、ip地址(单个或整段)、掩码等;当用户登录时,可以通过w命令来查看登录用户主机信息;用User_Alias和 Runas_Alias定义时,必须要用系统用户做为成员;用Cmnd_Alias 定义执行命令的别名时,必须是系统存在的文件,文件名可以用通配符表示,配置Cmnd_Alias时命令需要绝对路径;其中 Runas_Alias 和User_Alias 有点相似,但与User_Alias 绝对不是同一个概念,Runas_Alias 定义的是某个系统用户可以sudo 切换身份到Runas_Alias 下的成员;我们在授权规则中以实例进行解说;别名规则是每行算一个规则,如果一个别名规则一行容不下时,可以通过\来续行;同一类型别名的定义,一次也可以定义几个别名,他们中间用:号分隔,

%C;E3J1Am4z$w [0

Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24 注:定义主机别名HT01,通过=号列出成员51Testing软件测试网VGu:zT k h*XBv

Host_Alias HT02=st09,st10 注:主机别名HT02,有两个成员;51Testing软件测试网x S$G9PPV p`

Host_Alias HT01=localhost,st05,st04,10,0,0,4,255.255.255.0,192.168.1.0/24:HT02=st09,st10 注:上面的两条对主机的定义,可以通过一条来实现,别名之间用:号分割;51Testing软件测试网 Gf2r*KI9F3C8[

注:我们通过Host_Alias 定义主机别名时,项目可以是主机名、可以是单个ip(整段ip地址也可以),也可以是网络掩码;如果是主机名,必须是多台机器的网络中,而且这些机器得能通过主机名相互通信访问才有效。那什么才算是通过主机名相互通信或访问呢?比如 ping 主机名,或通过远程访问主机名来访问。在我们局域网中,如果让计算机通过主机名访问通信,必须设置/etc/hosts, /etc/resolv.conf ,还要有DNS做解析,否则相互之间无法通过主机名访问;在设置主机别名时,如果项目是中某个项目是主机名的话,可以通过hostname 命令来查看本地主机的主机名,通过w命令查来看登录主机是来源,通过来源来确认其它客户机的主机名或ip地址;对于主机别名的定义,看上去有点复杂,其实是很简单。

gk i2WH? klj6~NK0

如果您不明白Host_Alias 是怎么回事,也可以不用设置主机别名,在定义授权规则时通过ALL来匹配所有可能出现的主机情况。如果您把主机方面的知识弄的更明白,的确需要多多学习

_-a%E%V(mXq6Z Iz0

User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun 注:定义用户别名,下有四个成员;要在系统中确实在存在的;51Testing软件测试网tHdD${

User_Alias NETAD=beinan,bnnb 注:定义用户别名NETAD ,我想让这个别名下的用户来管理网络,所以取了NETAD的别名;

c&A"b X.KZitq0

User_Alias WEBMASTER=linuxsir 注:定义用户别名WEBMASTER,我想用这个别名下的用户来管理网站;51Testing软件测试网`t9wUT.i6V:jnp

User_Alias SYSAD=beinan,linuxsir,bnnnb,lanhaitun:NETAD=beinan,bnnb:WEBMASTER=linuxsir 注:上面三行的别名定义,可以通过这一行来实现,请看前面的说明,是不是符合?

8BI m1J-F ?"j+Y(`l0

Cmnd_Alias USERMAG=/usr/sbin/adduser,/usr/sbin/userdel,/usr/bin/passwd [A-Za-z]*,/bin/chown,/bin/chmod

5~3hz5@1G-M0

注意:命令别名下的成员必须是文件或目录的绝对路径;

g ~$E"b l+zb4j7q0
Cmnd_Alias DISKMAG=/sbin/fdisk,/sbin/parted51Testing软件测试网o]$pk@4QF/M
Cmnd_Alias NETMAG=/sbin/ifconfig,/etc/init.d/network
qB`.lL8q#D0Cmnd_Alias KILL = /usr/bin/kill51Testing软件测试网U-I%v:ug,|
Cmnd_Alias PWMAG = /usr/sbin/reboot,/usr/sbin/halt
1Fv^&k(l HVM0Cmnd_Alias SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
8I)x5]2A3GKzo4g0/usr/local/bin/tcsh, /usr/bin/rsh, \
^M*o*@ayl_7q g2z0/usr/local/bin/zsh

注:这行定义命令别名有点长,可以通过 \ 号断行;51Testing软件测试网Wv z8X^ qUn

Cmnd_Alias SU = /usr/bin/su,/bin,/sbin,/usr/sbin,/usr/bin51Testing软件测试网2aro-_l.hc s_

在上面的例子中,有KILL和PWMAG的命令别名定义,我们可以合并为一行来写,也就是等价行;51Testing软件测试网|"~:U f/Aj1l

Cmnd_Alias KILL = /usr/bin/kill:PWMAG = /usr/sbin/reboot,/usr/sbin/halt 注:这一行就代表了KILL和PWMAG命令别名,把KILL和PWMAG的别名定义合并在一行写也是可以的;51Testing软件测试网7y.{O:t)A!s

Runas_Alias ōP = root, operator51Testing软件测试网x"y Z{q5BIx%z

Runas_Alias DBADM=mysql:OP = root, operator 注:这行是上面两行的等价行;至于怎么理解Runas_Alias ,我们必须得通过授权规则的实例来理解;51Testing软件测试网jZV;yZ/s

TAG:

 

评分:0

我来说两句

Open Toolbar