su和sudo命令的区别与使用技巧3
上一篇 /
下一篇 2008-12-11 21:29:14
/ 个人分类:Lunix 点滴
- 文件版本: V1.0
- 开发商: 本站原创
- 文件来源: 本地
- 界面语言: 简体中文
- 授权方式: 免费
- 运行平台: Win9X/Win2000/WinXP
4、/etc/sudoers中的授权规则
BAM}+oDU+z7gW0 授权规则是分配权限的执行规则,我们前面所讲到的定义别名主要是为了更方便的授权引用别名;如果系统中只有几个用户,其实下放权限比较有限的话,可以不用定义别名,而是针对系统用户直接直接授权,所以在授权规则中别名并不是必须的;51Testing软件测试网YK_tg5f,v"FAJ W
授权规则并不是无章可寻,我们只说基础一点的,比较简单的写法,如果您想详细了解授权规则写法的,请参看man sudoers
"M w!B/lH:~n*w0 授权用户主机=命令动作51Testing软件测试网+y6E}^1sJ
这三个要素缺一不可,但在动作之前也可以指定切换到特定用户下,在这里指定切换的用户要用( )号括起来,如果不需要密码直接运行命令的,应该加NOPASSWD:参数,但这些可以省略;举例说明;
8us m%}&YHU3k[0 实例一:51Testing软件测试网Pm4C9JH\
beinan ALL=/bin/chown,/bin/chmod51Testing软件测试网9b [m{Z6H
如果我们在/etc/sudoers中添加这一行,表示beinan可以在任何可能出现的主机名的系统中,可以切换到root用户下执行/bin/chown和/bin/chmod命令,通过sudo -l来查看beinan在这台主机上允许和禁止运行的命令;
/Vq5O9a6z}0 值得注意的是,在这里省略了指定切换到哪个用户下执行/bin/shown和/bin/chmod命令;在省略的情况下默认为是切换到root用户下执行;同时也省略了是不是需要beinan用户输入验证密码,如果省略了,默认为是需要验证密码。
B1]
p
ymt#un-v0 为了更详细的说明这些,我们可以构造一个更复杂一点的公式;
Pbqe)[)R'B%}0 授权用户主机=[(切换到哪些用户或用户组)] [是否需要密码验证]命令1,[(切换到哪些用户或用户组)] [是否需要密码验证] [命令2],[(切换到哪些用户或用户组)] [是否需要密码验证] [命令3]....51Testing软件测试网C3DQKO*l
VT"VF
注解:51Testing软件测试网yHeG|8`\@m
凡是[ ]中的内容,是可以省略;命令与命令之间用,号分隔;通过本文的例子,可以对照着看哪些是省略了,哪些地方需要有空格;
&^0CGQi!Ac"a4l0 在[(切换到哪些用户或用户组)],如果省略,则默认为root用户;如果是ALL,则代表能切换到所有用户;注意要切换到的目的用户必须用()号括起来,比如(ALL)、(beinan)
h^W|0Z0 实例二:
Q2ybI
u9T2V"d0 beinan ALL=(root) /bin/chown, /bin/chmod51Testing软件测试网7W*~S4d&kF2}]
如果我们把第一个实例中的那行去掉,换成这行;表示的是beinan可以在任何可能出现的主机名的主机中,可以切换到root下执行/bin/chown,可以切换到任何用户招执行/bin/chmod命令,通过sudo -l来查看beinan在这台主机上允许和禁止运行的命令;51Testing软件测试网B(f5C#m3y
实例三:
bm5iz?8w0 beinan ALL=(root) NOPASSWD: /bin/chown,/bin/chmod
-k8_N/z
_}
]v@0 如果换成这个例子呢?表示的是beinan可以在任何可能出现的主机名的主机中,可以切换到root下执行/bin/chown,不需要输入beinan用户的密码;并且可以切换到任何用户下执行/bin/chmod命令,但执行chmod时需要beinan输入自己的密码;通过sudo -l来查看beinan在这台主机上允许和禁止运行的命令;
j&Qi)Yx+Z0 关于一个命令动作是不是需要密码,我们可以发现在系统在默认的情况下是需要用户密码的,除非特加指出不需要用户需要输入自己密码,所以要在执行动作之前加入NOPASSWD:参数;
T,O9LfO'T5k"lR0 有可能有的弟兄对系统管理的命令不太懂,不知道其用法,这样就影响了他对sudoers定义的理解,下面我们再举一个最简单,最有说服务力的例子;