su 切换身份
su -l username -c 'command'
sudo授权
- 来自sudo包
- man 5 sudoers
- sudo 能够授权指定用户在指定主机上运行某些命令。如果未授权用户尝试使用 sudo,会提示联系管理员
- sudo 可以提供日志,记录每个用户使用 sudo 操作
- sudo 为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机
- sudo 使用时间戳文件来完成类似“检票”的系统,默认存活期为5分钟的“入场券”
- 通过 visudo 命令编辑配置文件,具有语法检查功能
visudo -c
:检查语法
配置文件:
/etc/sudoers
,/etc/sudoers.d/
时间戳文件:
- CentOS 6:
/var/db/sudo
- CentOS 7:
/run/sudo/ts
日志文件:
/var/log/secure
配置文件支持使用通配符glob:
?:任意单一字符
*:匹配任意长度字符
[abc]:匹配其中一个字符
[!abc]:除了这三个字符的其它字符
\x:转义
[[alpha]]:字母
示例:/bin/ls [[alpha]]*
配置文件规则有两类:
- 别名定义:不是必须的
- 授权规则:必须的
sudoers:
- 授权规则格式:
用户 登入主机=(代表用户) 命令 - 示例:
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/parte,/sbin/fdisk SYSADER SERS= SYDCMD,DSKCMD DISKDER ALL=(OP) DSKCMD
- 示例5:
User_Alias ADMINUSER = adminuser1,adminuser2 Cmnd_Alias ADMINCMD = /usr/sbin/useradd,/user/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:
user1 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd
- 示例8:
user1 ALL=(ALL) /bin/cat /var/log/messages*
sudo命令
- ls -l /usr/bin/sudo
- 切换身份:
~]# sudo -i -u user1
- 格式:
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:"
网友评论