注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

sudo 权限的提升  

2010-07-26 12:27:00|  分类: linux服务篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
对于某个用户组中的管理员,他需要使用一些只有root权限才能执行的命令,我们因为这人就将root的密码直接告诉管理员,这样就十会危险,我们有一个办法可以解决这个问题,就是使用sudo来提升特定用户的权限。

配置文件是/etc/sudoers,提升用户的权限,可以通过在这个配置文件中添加适当的条目来完成,可以通过vim /etc/sudoers或visudo来编辑这个文件,在添加条目前先来查看一下这个文件的内容:grep -v "#" /etc/sudoers:
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
Cmnd_Alias LOCATE = /usr/bin/updatedb
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
Cmnd_Alias DRIVERS = /sbin/modprobe

Defaults    requiretty

Defaults    env_reset
Defaults    env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
                        LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
                        LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
                        LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
                        LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
                        _XKB_CHARSET XAUTHORITY"

root    ALL=(ALL)       ALL
这里我们看到有这样一行 root    ALL=(ALL)       ALL这是什么意思呢?这就要来说一下sudo中的格式了,格式如下:
用户 主机名列表 命令程序列表
被授权的用户 在哪些主机中使用 允许执行哪些命令

分别讲解sudo配置记录中不同组成部分的含义
  • 可以使用”%组名“的形式同时为一个组的用户授予权限
  • 主机名列表指的是本机的不同名称,而不是远程登录的客户机,因此一般均使用”localhost
  • 命令列表部分可以用逗号分隔多条命令,每条命令建议都使用绝对路径
对于root是一个特例,第一个ALL是指网络中的主机,我们后面把它改成了主机名,它指明root可以在此主机上执行后面的命令。第二个括号里的ALL是指目标用户,也就是以谁的身份去执行命令。最后一个ALL当然就是指命令名了
总结起来就是: 允许root在所有的主机中执行所有的命令。这就是为啥root至高无比了

我们给个例子:
  1. 允许用户zhangsan通过sudo执行/sbin,/usr/bin目录下的拥有命令,但是禁止调用ifconfig,vim命令
  2. 授权admin组中的用户不需要密码验证即可执行所有的命令
  3. 为sudo增加日志功能
我们打开sudoers文件,添加如下内容:
zhangsan localhost=/sbin/*,/usr/bin/* !/sbin/ifconfig eth0 !/usr/bin/vim
%admin ALL=(ALL) NOPASSWD:ALL
再打开/etc/syslog.conf
local2.debug /var/log/sudo
其中local2表示sudo程序使用的日志设备类别

有时有很多用户且不属于同一个组需要配置同样的权限,这样如果一项一项来配置做起来就会很麻烦,这里就引出的配置项的别名,别名有三个关键字:User_Alias(用户别名)Host_Alias(主机别名)Cmnd_Alia(命令别名),用大小写不能写错。写法如下:

User_Alias  OPERATORS=jerry,tom,tsengyia

Host_Alias  MAILSERVERS=mail,smtp,pop

Cmnd_Alias  SOFTWARE=/bin/rpm,/usr/bin/yum

OPERATORS   MAILSERVERS=SOFTWARE

当在一个组中允许特定的一个或几个用户具有高于其它用户的权限,这些用户就是管理员。


  评论这张
 
阅读(536)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017