• sudo


    sudo

    	来自sudo包 
    	man 5 sudoers
    	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]]*
    	配置文件规则有两类:
    		1 、别名定义: 不是必须的
    		2 、授权规则: 必须的
    

    sudoers

    	授权规则格式:
    		用户 登入的主机=( 代表用户)  命令
    		user host=(runas)command
    	示例:
    		root ALL=(ALL)   ALL
    	格式说明:
    		user:  运行命令者的身份
    		host:  通过哪些主机
    		(runas) :以哪个用户的身份
    		command:  运行哪些命令
    

    别名

    	Users 和runas:
    		username
    		#uid
    		%group_name
    		%#gid
    		user_alias|runas_alias
    	host:
    		ip 或hostname
    		network(/netmask)
    		host_alias
    	command:
    		command name
    		directory
    		sudoedit
    		Cmnd_Alias
    

    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
    		%wheel ALL=(ALL) ALL
    	示例2: 
    		student ALL=(root) /sbin/pidof,/sbin/ifconfig
    		%wheel ALL=(ALL) NOPASSWD: ALL
    	示例3
    		User_Alias NETADMIN= netuser1,netuser2
    		Cmnd_Alias NETCMD = /usr/sbin/ip
    		NETADMIN ALL= (root)NETCMD
    	示例4
    		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
    	示例5
    		User_Alias ADMINUSER = adminuser1,adminuser2
    		Cmnd_Alias ADMINCMD = /usr/sbin/useradd,/usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*,!/usr/bin/passwd root
    		ADMINUSER ALL=(root) NOPASSWD:ADMINCMD,PASSWD:/usr/sbin/userdel
    	示例6
    		Defaults:wang runas_default=tom
    		wang ALL=(tom,jerry) ALL
    	示例7
    		wang 192.168.175.136,192.168.175.138=(root)
    		/usr/sbin/,!/usr/sbin/useradd
    	
    	示例8
    		wang ALL=(ALL) /bin/cat /var/log/messages*
    

    visudo命令

    	visudo - safely edit the sudoers file
    	visudo [-chqsV] [-f sudoers] [-x output_file]
    	Options:
    		-c, --check              	仅检查模式
    		-f, --file=sudoers       	指定的sudoers文件定位
    		-h, --help               	帮助信息
    		-q, --quiet              	少量语法错误信息
    		-s, --strict             	严格语法检查
    		-V, --version            	显示版本信息
    		-x, --export=output_file 	采用JSON格式写sudoers到指定输出文件
    
    

    sudo 命令

    	ls -l /usr/bin/sudo
    	sudo –i –u wang  切换身份
    	
    	sudo - execute a command as another user
    	sudo -h | -K | -k | -V
    	sudo -v [-AknS] [-g group] [-h host] [-p prompt] [-u user]
    	sudo -l [-AknS] [-g group] [-h host] [-p prompt] [-U user] [-u user] [command]
    	sudo [-AbEHknPS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] [VAR=value] [-i|-s] [<command>]
    	sudo -e [-AknS] [-r role] [-t type] [-C num] [-g group] [-h host] [-p prompt] [-u user] file
    	Options:
    		-A, --askpass               	为密码提示使用帮助项目
    		-b, --background            	在后台运行命令
    		-C, --close-from=num        	关闭所有文件描述符 >= num
    		-E, --preserve-env          	当运行命令时保护用户环境
    		-e, --edit                 	 编辑文件来取代运行的命令
    		-g, --group=group           	以指定的组名或组id来运行命令
    		-H, --set-home              	给目标用户的家目录设置HOME 变量
    		-h, --help                  	显示帮助
    		-h, --host=host             	在主机上运行命令 (if supported by plugin)
    		-i, --login                	 使用目标用户运行登陆shell环境,也可指定运行命令
    		-K, --remove-timestamp      	完全移除时间戳文件
    		-k, --reset-timestamp       	使时间戳文件失效
    		-l, --list                  	列出用户的特权或检查指定的命令
    		-n, --non-interactive       	non-interactive 模式, 不使用提示
    		-P, --preserve-groups       	保存组本身的取代设置给目标的
    		-p, --prompt=prompt        	使用指定的密码提示
    		-r, --role=role             	使用指定的角色来创建SELinux指定的安全上下文内容
    		-S, --stdin                 	从标准输入中读取命令
    		-s, --shell                 	使用指定的用户运行shell环境,同时可以指定命令
    		-t, --type=type             	使用指定的类型创建 SELinux安全上下文
    		-U, --other-user=user       	采用列表模式,显示用户的特权
    		-u, --user=user             	以指定用户或id运行命令或编辑文件
    		-V, --version               	显示版本信息
    		-v, --validate              	在不运行命令的情况下,更新用户的时间戳
    		--                          	停止处理命令行参数
    
    	
    	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:"
    
  • 相关阅读:
    Dubbo的负载均衡
    阿里巴巴为什么不用 ZooKeeper 做服务发现?
    Dubbo注册中心
    史上最全 40 道 Dubbo 面试题及答案
    dubbo面试问题
    iOS7中弹簧式列表的制作
    自动打包
    http://blog.csdn.net/v_july_v/article/details/6543438
    ARC简介以及工程中ARC与非ARC的混合
    iOS开源库–最全的整理
  • 原文地址:https://www.cnblogs.com/shenxm/p/8451885.html
Copyright © 2020-2023  润新知