Linux服务器权限管理之sudo高级应用
2016-09-07 09:26
351 查看
对于sudo提权,也就是修改/etc/sudoers的配置文件
[root@Centos ~]# ls -ll /etc/sudoers -r--r-----. 1 root root 5870 Aug 19 16:53 /etc/sudoers
可以看出/etc/sudoers默认的权限是440(也是系统比较安全的权限设置),当然超级管理员肯定是有权限修改其文件内容的,不然无法修改,需要管理员预先进行授权。
一、直接修改/etc/sudoers文件的注意事项
1、操作时最好用echo >> 追加,不过cat sed同样也可以实现(不常用)
2、修改完成后一定记得检查语法visudo -c
3、确保/etc/sudoers默认的权限是440(防止权限误用)
4、及时验证修改的配置是否正确
5、确保知道root密码,以便普通用户可以通过sudo su -命令切换
二、sudo的配置文件/etc/sudoers
[root@Centos ~]# cat /etc/sudoers # Sudoers allows particular users to run various commands as ## Examples are provided at the bottom of the file for collections ## of related commands, which can then be delegated out to particular ## users or groups. ## This file must be edited with the 'visudo' command. ## Host Aliases ## Groups of machines. You may prefer to use hostnames (perhaps using ## wildcards for entire domains) or IP addresses instead. # Host_Alias MAILSERVERS = smtp, smtp2 ## User Aliases ## These aren't often necessary, as you can use regular groups ## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname ## rather than USERALIAS # User_Alias ADMINS = jsmith, mikem
修改时尽量复制系统的格式进行相关修改,防止配置错误,难以改正
修改授权某用户权限成功后,切换到用户下面,用sudo -l来查看自己拥有哪些权限
[yuw001@Centos ~]$ sudo -l [sudo] password for yuw001: User yuw001 may run the following commands on this host: (root) /bin/ping, /bin/hostname, /usr/bin/free, /sbin/route, /bin/netstat
使用命令时记得加上sudo
[yuw001@Centos ~]$ hostname linux hostname: you must be root to change the host name [yuw001@Centos ~]$ /bin/hostname linux hostname: you must be root to change the host name [yuw001@Centos ~]$ sudo hostname linux [root@linux ~]# 退出重新登陆后发现主机名修改成功
配置文件一行是一个规则,前面都会用#进行注释,用‘\’续行(换行)
三、配置文件中规则的分类
1、别名类型
别名类型分为以下几类
a、Host_Alias(主机别名)
生产环境中一般不会设置主机别名,一般主机别名不太常用
root ALL=(ALL) ALL 第一个ALL就是主机别名的应用位置
b、User_Alias(用户别名)
如果是表示用户组那么前面要加%
root ALL=(ALL) ALL root就是用户别名的应用位置 User_Alias ADMINS = jsmith, mikem
c、Runas_Alias别名
此别名是指定“用户身份”,即 sudo允许切换到的用户
root ALL=(ALL) ALL 第二个(ALL)就是用户别名的应用位置 Runas_Alias OP = root
d、Cmnd_Alias(命令别名)
就是定义一个别名,它可以包含一堆命令的内容(一组相关命令的集合)
root ALL=(ALL) ALL 第三个ALL就是用户别名的应用位置 Cmnd_Alias DRIVERS = /sbin/modprobe
说明
用户别名中的用户必须是系统真实存在的,书写时注意空格,用户别名具有特殊意义,用户别名必须使用大写
命令别下的成员必须使用绝对路径,可以用‘\’换行
2、授权规则
授权规则就是执行的规则,授权中的所有ALL必须大写
## Allow root to run any commands anywhere root ALL=(ALL) ALL yumw ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel ###user group sa allow to run commands anywhere yuw ALL=/usr/sbin*,/sbin* sa ALL= /usr/sbin*,/sbin*,!/sbin/fdisk
!表示禁止执行这个命令
[sa@linux ~]$ sudo -l User sa may run the following commands on this host: (root) /usr/bin*, (root) /sbin*, (root) !/sbin/fdisk [sa@linux ~]$ sudo fdisk Sorry, user sa is not allowed to execute '/sbin/fdisk' as root on linux.
如果将配置做下修改
###user group sa allow to run commands anywhere yuw ALL=/usr/sbin*,/sbin* sa ALL= !/sbin/fdisk,/usr/sbin*,/sbin* [sa@linux ~]$ sudo -l User sa may run the following commands on this host: (root) /usr/bin*, (root) /sbin*, (root) !/sbin/fdisk [root@linux ~]# su - sa [sa@linux ~]$ sudo fdisk [sudo] password for sa: Usage: fdisk [options] disk change partition table fdisk [options] -l disk list partition table(s) fdisk -s partition give partition size(s) in blocks Options: -b size sector size (512, 1024, 2048 or 4096) -c switch off DOS-compatible mode -h print help -u size give sizes in sectors instead of cylinders -v print version -C number specify the number of cylinders -H number specify the number of heads -S number specify the number of sectors per track
所以经测试结果表明,sa ALL= !/sbin/fdisk,/usr/sbin*,/sbin*命令执行的匹配规则是从后到前的,所以后面执行sudo fdisk不会提示权限不足的现像。
相关文章推荐
- Linux服务器权限管理之sudo高级应用
- Linux服务器权限管理之sudo高级应用
- Linux服务器权限管理之sudo应用
- 服务器集群管理框架从构思到完成(三)高级应用示例:修改远程windows和linux服务器配置文件
- 利用Sudo命令为Ubuntu系统分配管理权限
- Spring 事务管理高级应用难点剖析: 第 2 部分 --转自 陈 雄华, 系统架构师
- Spring 事务管理高级应用难点剖析: 第 1 部分---转自:陈 雄华
- 实验二:电子邮件服务器的安装和管理及邮件收发的高级应用
- 三层次数据库应用中的口令权限管理方案与实现
- 位与运算在权限管理中的应用
- 利用sudo命令为Ubuntu分配管理权限
- Linux 高级的权限管理ACL(转)
- Spring 事务管理高级应用难点剖析: 第 2 部分
- EsbAOP应用--权限管理
- VB6应用系统的权限管理
- Lotus Domino服务器及其应用系统的高级管理(2)
- 高级权限管理系统的设计---- 基于角色+模块的权限控制管理实现
- Lotus Domino服务器及其应用系统的高级管理(2)
- su53 在权限管理中的应用
- EsbAOP应用--权限管理