Linux 服务器用户权限管理改造方案与实施项目
Linux 服务器用户权限管理改造方案与实施项目
- 在了解公司业务流程后,提出权限整改方案改进公司超级权限root泛滥的现状。
- 我首先撰写方案后,给boss看,取得boss的支持后,召集大家开会讨论。
- 讨论确定可行后,由我负责推进实施。
- 实施后结果,公司的服务器权限管理更加的清晰了。
- 制订账号权限申请流程及权限申请表格。
具体内容
1 问题现状
当前我们公司服务器上百台,各个服务器上的管理人员很多(开发+运维+架构+DBA+产品+市场),在大家登陆使用LInux服务器的时,不同职能的员工水平不同,因此导致操作很不规范,root权限泛滥(几乎大部分人员都有root权限),经常导致文件等莫名其妙的丢失,老手和新手员工对服务器的熟知度也不同,这样使得公司服务器安全存在很打的不稳定性、及操作安全隐患,据调查企业服务器环境,50%以上的安全问题都来自于内部,而不是外部。为了解决以上问题,单个用户管理权限过大现状,现提出针对Linux服务器用户权限集中管理的解决方案。
2 项目需求
我们既希望超级用户root密码掌握在少数或者唯一的管理员手中,又希望多个系统管理员或相关有权限的人员,能够完成更多更复杂的自身职能的工作,又不至于越权操作导致系统安全隐患。
那么,如何解决多个系统管理员都能管理系统而又不让超级权限泛滥的需求呢?这就需要sudo管理替代或结合su命令来完成这样的苛刻且必要的企业服务器用户管理需求。
3 具体实现
针对公司里不同部门,根据员工的具体职能(例如:开发,运维,数据库管理员),分等级、分层次的实现对Linux服务器管理的权限的最小化、规划化。这样既减少了运维管理成本,消除了安全隐患,有提高了工作效率,实现了高质量的、快速化的完成项目进度,以及日常系统维护。
4 实施方案
说明:实施方案一样是由积极主动发现问题的运维人员提出问题,然后写好方案,在召集大家讨论可行性,最后确定方案,实施部署,最后后期维护。
思想:在提出问题前,一定要想到如何解决,一并发出解决方案。
到此为止:你应该已经写完了权限规划方案。
4.1 信息采集(含整改方案流程)
1.1 召集相关各部门领导通过会议讨论或是与各组领导沟通确定权限管理方案的可行性。需要支持的人员:运维经理、CTO支持、各部门组的领导。我们作为运维人员,拿着类似老师这个项目方案,给大家讲解这个文档,通过会议形式做演讲,慷慨激昂的演说,取得大佬们的支持和认可,才是项目能够得以最终实施的前提,当然,即使不实施,那么,你的能力也得到了锻炼,老大对你的积极主动思考网站架构问题也会另眼相看。
1.2 确定方案可行性后,会议负责人汇总、提交、审核所有相关员工对Linux服务器的权限的需求。
取得大佬们支持后,通过发邮件或者联系相关人员取得需要的相关人员的权限信息。比如说,请各个部门经理整理归类本部门需要登录Linux权限的人员名单、职位、及负责的业务及权限,如果说不清楚权限细节,就说负责的业务细节,这样就可以确定需要啥权限了。
1.3 按照需要执行的Linux 命令程序及公司业务服务来规划权限和人员对于配置。
主要运维人员根据上面收集的人员名单,需要的业务及权限角色,对应账号配置权限,实际就是配置sudo配置文件。
1.4 权限方案一旦实施后,所有员工必须通过《员工Linux服务器管理权限申请表》来申请对应的权限,确定审批流程,规范化管理。这里实施后把握住权限申请流程很重要,否则,大家不听话,方案实施玩就会泡汤的。
1.5 写操作说明,对各部门进行操作讲解。sudu执行命令,涉及PATH变量问题,运维提取处理好。
4.2 收集员工职能和对应权限
次过程召集大家开会确定,或者请各组领导安排人员进行统计汇总,人员及对应的工作职责,交给运维人员,由运维人员优化职能对应的系统权限。
1)运维组:
| 级别 | 权限 |
|
初级运维 a,b,c,d |
查看系统信息,查看网络状态 |
|
/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/sbin/ifconfig, /bin/netstat,/sbin/route |
|
| 高级运维 | 查看系统信息,查看和修改网络配置,进程管理,软件包管理,存储管理 |
|
/usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/sbin/ifconfig, /bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,/bin/kill, /usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum, /sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount |
|
| 运维经理 | 超级用户所有权限 |
| ALL |
2)开发组:
| 级别 | 权限 |
|
初级开发 |
root查看权限,对应服务查看日志的权限 |
|
/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls |
|
| 高级开发 | root查看权限,对应服务查看日志的权限,重启对应服务的权限 |
|
/sbin/service,/sbin/chkconfig,/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls |
|
| 开发经理 | 项目所在服务器的ALL权限,不能修改root密码 |
| ALL,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/usr/bin/vi *suduers* |
权限分配:普通用户的权限,对应服务的查看日志的权限,重启对应服务的权限
大公司:项目负责制的规定。
3)架构组:
| 级别 | 权限 |
| 架构工程师 | 普通用户的权限 |
| 不加入sudo列表 |
4)DBA组:
| 级别 | 权限 |
| 初级DBA | 普通用户的权限 |
| 不加入sudo列表 | |
| 高级DBA | 项目所在服务器的ALL权限,不能修改root密码 |
| ALL,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/usr/bin/vi *suduers* |
5)网络组:
| 级别 | 权限 |
| 初级网络 | 普通用户的权限 |
| 不加入sudo列表 | |
| 高级网络 | 项目所在服务器的ALL权限 |
|
/sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net, /sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig, /sbin/mii-tool,/bin/cat /var/log/* |
5. 模拟用户创建角色
建立3个初级运维,一个高级运维,一个网络工程师,一个运维经理,密码统一123
for user in chuji001 chuji002 net001 senior001 manager001
do
useradd $user
echo ""|passwd --stdin $user
done
建立5个开发人员,属于phpers组
groupadd -g phpers
for n in `seq `
do
useradd -g phpers php00$n
echo ""|passwd --stdin php00$n
done
for user in kaifamanager001 seniorphpers
do
useradd $user
echo ""|passwd --stdin $user
done
visudo 编辑文件
##Cmnd_Alias by gaogzhen##2018.12.03
Cmnd_Alias CY_CMD_1 = usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/sbin/ifconfig,/bin/netstat,/sbin/route
Cmnd_Alias GY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/sbin/ifconfig,/bin/netstat,/sbin/route,/sbin/iptables,/etc/init.d/network,/bin/nice,/bin/kill,/usr/bin/kill,/usr/bin/killall,/bin/rpm,/usr/bin/up2date,/usr/bin/yum,/sbin/fdisk,/sbin/sfdisk,/sbin/parted,/sbin/partprobe,/bin/mount,/bin/umount
Cmnd_Alias CK_CMD_1 = /usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls
Cmnd_Alias GK_CMD_1 = /sbin/service,/sbin/chkconfig,/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls
Cmnd_Alias GW_CMD_1 = /sbin/route,/sbin/ifconfig,/bin/ping,/sbin/dhclient,/usr/bin/net,/sbin/iptables,/usr/bin/rfcomm,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/cat var/log/*
##User_Alias by gaogzhen##2018.12.03
User_Alias CHUJIADINS = chuji001,chuji002,chuji003
User_Alias GWNETADINS = net001
User_Alias CHUJI_KAIFA = %phpers
##Runas_Alias by gaogzhen##2018.12.03
Runas_Alias OP = root
#pri config
senior001 ALL=(OP) GY_CMD_1
manager001 ALL=(ALL) NOPASSWD:ALL
kaifamanager001 ALL=(ALL) ALL,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/usr/bin/vi *suduers*
seniorphpers ALL=(OP) GK_CMD_1
CHUJIADINS ALL=(OP) CY_CMD_1
GWNETADINS ALL=(OP) GW_CMD_1
CHUJI_KAIFA ALL=(OP) CK_CMD_1
5. 实战调试测试
6.成功后发邮件通知所有人权限配置生效。并附带操作说明。
有必要的话,培训讲解
7.制订权限申请流程及申请表
见单独文档
8.后期维护:不是特别紧急的需要,一律走申请流程
服务器多了,可以通过封软件批量分发/etc/sudoers(主要权限和语法检查)。
出来权限上的控制,在账户有效时间上也进行限制,现在线上多少用户的权限位永久权限可以使用以下方式进行时间上的控制。这样才能让安全最大化。http://oldboy.blog.51cto.com/2561410/1289144
/home/anca,/home/zuma,所有的程序都在账户目录下面。启动的时候也是通过这个账户。也可以不设置密码,禁止密码登录
提升:授权ALL在进行排除有时让我们防不胜防,,这种先开后管的策略并不是好的策略。
白名单机制
8.sudo配置注意事项
a)命令别名下的成员必须是文件或者目录的绝对路径
b)别名名称是包含大写字母、数字、下划线,大写字母必须大写
c)一个别名下有多个成员,成员与成员之间,通过“,”号分隔;成员必须是有效实际存在的。
d)成员别名受别名类别Host_alias、User_Alias、Runas_Alias、Cmnd_Alias、制约,定义什么类型的别名,就要有什么类型的成员相配。
e)别名规则是每行算一个规则,过一个一个别名规则一行容不下时,可以通过“\”反斜杠来换行
f)指定切换的用户要用()括号括起来。如果省略括号,则默认为root用户:
g)如果不需要密码直接运行命令的,应该加NOPASSWD:参数
h)禁止某类程序或者命令执行,要在命令动作前面加上“!”号,并且放在运行命令的后面
i)用户组前面必须加%号
Linux 服务器用户权限管理改造方案与实施项目的更多相关文章
- 简单的Linux的用户权限管理
企业生产环境用户权限集中管理方案案例 建立中要添加如下的项目经验: 在了解公司业务流程后,提出权限整改解决方案,改进公司超级用户Root权限泛滥的问题. 我首先写好方案后,给老大看,取得老大的支持后, ...
- Linux:用户权限管理
用户与用户组的概念 超级用户 拥有对系统的最高管理权限,默认是 root 用户 普通用户 只能对自己目录下的文件进行访问和修改,具有登录系统的权限. 虚拟用户 也叫"伪"用户,这类 ...
- Linux系统用户权限管理
Linux系统中三种基本权限 用户属主.用户属组及其它人权限 -rw-r--r-- 1 root root 762 11-11 20:34 a.out 文件类型 ls命令中的缩写 应用 一般文件 - ...
- Linux之用户权限管理
chmod(更改目录或文件权限) 在linux中,文件的权限分为3中,拥有者,群组,其他人.而chmod则是对权限更改的命令. u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个组,o 表示其 ...
- linux 用户管理,用户权限管理,用户组管理
linux 用户管理,用户权限管理,用户组管理 一:ls -l 命令 解释 第个d表示是目录,如果是文件是-,如果是连接是l 第2到4个 rwx 表示创建者的操作权限 r 读,w 写,x 执行 第5到 ...
- Linux下安装SVN,仓库创建,用户权限管理
Exported from Notepad++ Linux下安装SVN,仓库创建,用户权限管理 1.SVN安装 Ubuntu系统下安装:sudoapt-getinstallsubv ...
- Linux常用命令之用户权限管理chmod、chown、chgrp、umask命令讲解
这节课我们重点来学习权限管理命令,说到权限大家可能第一时间能想到的就是读.写.执行 rwx 三种权限,在正式讲解权限命令之前,先简单的介绍一下rwx权限对于文件和目录的不同含义. 权限字符 权限 对文 ...
- Linux_CentOS用户管理 和 用户权限管理 chmod、ACL、 visudo
一.用户管理 Linux 系统同时可以支持多个用户,每个用户对自己的文件设备有特殊的权利,能够保 证用户之间互不干扰.就像手机开了助手一样,同时登陆多个 qq 账号,当硬件配置非常高 时,每个用户还可 ...
- Python 学习 第十篇 CMDB用户权限管理
Python 学习 第十篇 CMDB用户权限管理 2016-10-10 16:29:17 标签: python 版权声明:原创作品,谢绝转载!否则将追究法律责任. 不管是什么系统,用户权限都是至关重要 ...
随机推荐
- jquery click嵌套 事件重复注册 多次执行的问题
jquery click嵌套 事件重复注册 多次执行的问题 上面只是参考,我自己的解决方法是先使用unbind("click")解除事件然后再绑定新事件: $("#tes ...
- TortoiseSVN 搭建本地版本库及简单操作使用
TortoiseSVN是windows上一款著名的版本控制软件,对于我们管理自己的代码,特别是对一个团队来说,非常重要. 本文探讨的是如何搭建本地的版本库. (1)安装TortoiseSVN之后需要创 ...
- grep-检索文本
grep -r bes.dsf.server.zookeeper ./ //递归搜索,不支持指定文件类型 find ./ -name "*.entity.xml" -exec gr ...
- Hibernate基础案例1
使用到的是MySQL数据库 1.在项目中先引入jar包,并添加引用 <dependencies> <dependency> <groupId>junit</g ...
- OC与JS交互前言
OC与JS交互过程中,可能会需要使用本地image资源及html,css,js文件,这些资源应该如何被加载? 一.WebView加载HTML UIWebView提供了三个方法来加载html资源 1. ...
- yum 和 rpm安装mysql彻底删除
1.yum方式安装的MySQL $ yum remove mysql mysql-server mysql-libs compat-mysql51 $ rm -rf /var/lib/mysq $ r ...
- hibernate笔记3--hql查询
1.Query:他是一种比较面向对象的查询方式,query查询也叫做hql查询(hibernate query language),使用query查询,需要接受一个 hql语句进行查询 ...
- 软件测试Lab 1 Junit and Eclemma
首先安装eclipse 然后下载hamcrest-core-1.3.jar,下载地址:http://mvnrepository.com/artifact/org.hamcrest/hamcrest-c ...
- Spring 的AOP
AOP:面向切面编程,相对于OOP面向对象的编程 Spring的AOP的存在的目的是为了解耦.AOP可以让一组类共享相同的行为.在OOP中只能通过继承类和实现接口,来使代码的耦合度增强,且类继承只能为 ...
- Android 常用RGB值及名称
Android 常用RGB值及名称 颜 色 RGB值 英文名 中文名 #FFB6C1 LightPink 浅粉红 #FFC0CB Pink 粉红 #DC143C Crimson 深红/猩红 #F ...