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

红烧鱼

linux & windows management

 
 
 

日志

 
 
关于我
mac

专注IT基础架构设计与运维。 欢迎给我留言,或邮件沟通zjwsk@163.com

网易考拉推荐

使用Sudo来进行细致的权限分配   

2008-07-10 00:17:52|  分类: HPUX |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
    可能在日常的系统管理中,经常会遇到诸如此类的问题:监控人员需要运行一些命令来查看或者对系统做一些修改,但这些命令只有root用户才有权限。但实际上,又不能让该人员知道root的密码。于是很多人经常使用chmod命令来修改这些命令的权限和宿主,甚至通过修改用户的UID来实现。但以上这些办法都是一种“后患无穷”的临时办法。因为你不知道修改权限和宿主以后,将会给系统带来怎样的结果。
    基于以上各种问题的困难,于是Sudo这款软件就产生了。
 
    1. Sudo软件的安装
    在以下站点可以下载:
    在下载的时候,需要确认操作系统类型,用uname -a或者machinfo命令来确认。
    下载完以后,来安装Sudo软件。
    例如我将该软件放在/tmp目录下,因此我可以用以下命令来安装:
    #swinstall -s /tmp/ixSudo_A.08.00-1.6.8p12.001_HP-UX_B.11.23_IA+PA.depot
    安装完成以后确认已经能够找到该软件:
    #swlist -l bundle | grep -i sudo
    ixSudo                A.08.00-1.6.8p12.001 Super User Do
 
    2. 配置Sudo软件
    Sudo软件的配置很简单,因为它只牵涉到一个配置文件:/etc/sudoers
    让我们先来看一下缺省的/etc/sudoers文件:
    #cat /etc/sudoers
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification
# Runas alias specification
# User privilege specification
root    ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL
# Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
    实在是相当的简单了。
    /etc/sudoers的配置分为两类:
        a. 别名定义
            其中包含了alias的,就是别名定义的部分。其中别名定义并不是必须的,但为了管理方便,还是建议采用别名管理的方式。别名使用的好处,看到后面自然就明白了。
            别名的基本语法是:Alias_Type NAME = item1, item2, ...
              或者是:Alias_Type NAME = item1, item2, item3 : NAME = item4, item5
              建议采用第一种,对于要定义多个别名,就定义成多行的,便于管理
        b. 授权
            其中授权是Sudo中必须要配置的。Sudo权限管理的精华就在于此。其实简单来说,Sudo的权限管理方式是采用了su的权限管理方式,它让该用户在运行需要特定权限命令的时候su到拥有该特定权限的用户执行该命令,在执行完成以后自动退出该用户的权限,这样就避免了我们su到root用户以后,除了这些命令,我们还能操作其他命令的漏洞。
            授权的基本语法是:授权用户 主机=命令动作
 
    3. 详解/etc/sudoers文件
    在我们学会编辑/etc/sudoers文件之前,记住一件事情:Sudo软件是要求使用visudo这条命令来编辑/etc/sudoers文件的。然而本人也尝试过使用vi来编辑,而且也是成功的。
 
    3.1 定义别名
        Host alias:定义主机别名
        User alias:定义用户别名。其中用户别名的定义,即可以是单个的用户,也可以是用户组(此时用户组的前面必须要加“%”号)
        Cmnd alias:定义命令别名
        Runas alias:这里Runas别名的定义,是指“目标用户”,就是想要切换到哪个用户的别名定义
        为了尽量简单,我自己将/etc/sudoers的别名部分定义如下:
            Host_Alias    MACHINE01=localhost,goodgirl,15.70.146.115
            User_Alias    SYSADMIN=crystal
            Cmnd_Alias    DISOP=/usr/sbin/vgdisplay
            Runas_Alias   OP=root
 
    3.2 授权
        对授权的定义如下:
            crystal         MACHINE01=(OP)  NOPASSWD:DISOP
 
    此时,我们可以到crystal的权限,然后用sudo -l命令来查看能够使用sudo运行那些命令:
    #su - crystal
    $sudo -l
    User crystal may run the following commands on this host:
        (root) NOPASSWD: /usr/sbin/vgdisplay
    于是此时,我们就可以使用如下命令来查看VG00的信息了:
    $sudo /usr/sbin/vgdisplay vg00
 
    4. Sudo常用的一些参数
    例如以上,我们就在crystal这个用户权限下使用了sudo -l命令来查看该用户能使用sudo命令来操作那些权限的命令。
    除此之外,它还有一些常用的参数:
    sudo -V
        显示版本
    sudo -l
        显示出自己(执行 sudo 的使用者)的权限
    sudo -v
        因为 sudo 在第一次执行时或是在 N 分钟内没有执行(N 预设为五)会问密码,这个参数是重新做一次确认,如果超过 N 分钟,也会问密码。这里N默认是5。
    sudo -k
        将会强迫使用者在下一次执行 sudo 时问密码(不论有没有超过 N 分钟)
 
    总结:
    总的来说,Sudo这个工具的配置还是很简单的,并且给我们的管理带来很大的便利。在遇到用户一些特殊权限要求的时候,建议先不要修改系统文件、命令的默认权限,采用Sudo来进行管理,会让系统更加安全稳定一些。
    这并不是Sudo一个完整的教程,而仅仅是一个简单的例子。更加强大的功能,以后再继续探讨。
  评论这张
 
阅读(764)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

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

页脚

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