您的位置:首页 > 其它

sudo授权指定用户在指定主机上运行某些命令

2017-09-13 11:58 316 查看

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:”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  sudo用法级配置
相关文章推荐