• sudo


    sudo介绍

    • sudo 能够授权指定用户在指定主机上运行某些命令。 如果未授权用户尝试使用 sudo,会提示联系管理员
    • sudo 可以提供日志,记录每个用户使用sudo操作
    • sudo 为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
    • sudo 使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”
    • 通过visudo命令编辑配置文件,具有语法检查功能
    • visudo –c 检查语法

    相关文件

    配置文件: /etc/sudoers, /etc/sudoers.d/
    时间戳文件: /var/db/sudo
    日志文件: /var/log/secure
    配置文件支持使用通配符glob:
    ? :任意单一字符
    * :匹配任意长度字符
    [wxc]:匹配其中一个字符
    [!wxc]:除了这三个字符的其它字符
    x : 转义
    [[alpha]] :字母 示例: /bin/ls [[alpha]]*
    配置文件规则有两类;
    别名定义:不是必须的
    授权规则:必须的

    sudo配置文件格式

    授权规则格式:
    用户 登入主机=(代表用户) 命令
    示例:
    root ALL=(ALL) ALL
    格式说明:
    user: 运行命令者的身份
    host: 通过哪些主机
    (runas):以哪个用户的身份
    command: 运行哪些命令 
    注意:如果只授权用户登录本机执行命令,host写本地IP即可ALL代表所有被登录的主机IP,而不是用户登录的IP哪个user在哪个host上执行相应命令

    sudo别名和实例

    • 别名有四种类型:User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias
    • 别名格式: [A-Z]([A-Z][0-9]_)*
    • 别名定义: 
      Alias_Type NAME1 = item1, item2, item3 : NAME2 =item4, item5

    实例1

    Student ALL=(ALL) ALL #Student用户在所有主机上代表所有用户执行所有动作
    %wheel ALL=(ALL) ALL #wheel组的用户可以在所有主机代表所有用户执行所有动作
    student ALL=(root) /sbin/pidof,/sbin/ifconfig
    %wheel ALL=(ALL) NOPASSWD: ALL #wheel组的用户可以在所有主机代表所有用户执行所有动作,不用密码

    实例2

    定义别名
    User_Alias NETADMIN = netuser1,netuser2
    Cmnd_Alias NETCMD = /usr/sbin/ip
    NETADMIN ALL=(root) NETCMD

    实例3

    以%开头的是组
    User_Alias SYSADER=wang,mage,%admins
    User_Alias DISKADER=tom
    Host_Alias SERS=www.magedu.com,172.16.0.0/24
    Runas_Alias OP=root
    Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod
    Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk
    SYSADER SERS= SYDCMD,DSKCMD
    DISKADER ALL=(OP) DSKCMD

    实例4

    Defaults:wang runas_default=tom
    wang ALL=(tom,jerry) ALL

    实例5

    #wang可以执行/usr/sbin/下的所有命令,除了/usr/sbin/useradd
    wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd

    sudo用法

    sudo -i -u wang 切换身份
    sudo [-u user] COMMAND
    -V 显示版本信息等配置信息 
    -u user 默认为root 
    -l,ll 列出用户在主机上可用的和被禁止的命令 
    -v 再延长密码有效期限5分钟,更新时间戳 
    -k 清除时间戳(1970-01-01),下次需要重新输密码 
    -K 与-k类似,还要删除时间戳文件 
    -b 在后台执行指令 
    -p 改变询问密码的提示符号 
    示例: -p ”password on %h for user %p:”
  • 相关阅读:
    [转] c#有关winform的两个代码片段(多线程操作窗体控件与窗体淡入淡出效果)
    微软企业库源码解析——DAAB(三)DatabaseFactory(其余的Strategy)
    软件工程真的那么难么
    在VS2010中的注册微软企业库4.1
    对为什么使用访问器(getter),以及什么是继承的一点看法
    微软企业库源码解析——DAAB(四)DatabaseFactory小结
    Unity与ASP.NET的集成(官方方法)
    ASPxGridView导出pdf时中文乱码的解决方案
    删除WSS卸载后遗留的数据库
    让微软企业库中的Email Trace Listener使用需要身份验证的SMTP服务器
  • 原文地址:https://www.cnblogs.com/aftree/p/9381193.html
Copyright © 2020-2023  润新知