免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4510 | 回复: 1
打印 上一主题 下一主题

使用Sudo来进行细致的权限分配 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-19 13:55 |只看该作者 |倒序浏览
    可能在日常的系统管理中,经常会遇到诸如此类的问题:监控人员需要运行一些命令来查看或者对系统做一些修改,但这些命令只有root用户才有权限。但实际上,又不能让该人员知道root的密码。于是很多人经常使用chmod命令来修改这些命令的权限和宿主,甚至通过修改用户的UID来实现。但以上这些办法都是一种“后患无穷”的临时办法。因为你不知道修改权限和宿主以后,将会给系统带来怎样的结果。
    基于以上各种问题的困难,于是Sudo这款软件就产生了。

    1. Sudo软件的安装
    在以下站点可以下载:
   
http://h20338.www2.hp.com/hpux11i/cache/324414-0-0-0-121.html
    在下载的时候,需要确认操作系统类型,用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一个完整的教程,而仅仅是一个简单的例子。更加强大的功能,以后再继续探讨。

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/12718/showart_281470.html

论坛徽章:
0
2 [报告]
发表于 2009-08-18 15:09 |只看该作者
ixSudo支持LDAP吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP