创建中要添加以下的项目经验:web
当前咱们公司服务器上百台,各个服务器上须要管理的人不少(开发+运维+架构+DBA+产品+市场),在你们同时登陆Linux服务器的时候,不一样职能员工的水平不一样,所以致使很不规范,root权限泛滥(几乎大部分人都拥有root权限),常常致使文件莫名奇妙的丢失,老手和新手对服务器的熟知程度不一样,这样使得公司服务器安全存在很大的不稳定性,以及操做的安全性。据企业调查,50%的以上的安全问题都来自于内部。而不是外部。为了解决以上问题,单个用户管理权限过大的现状,现提出用户权限集中管理的方案。shell
咱们既但愿超级用户root密码掌握在少数或者惟一人的手中,又但愿多个系统管理员或者相关权限的的人员,能够完成更多更复杂的与自身职能相关的工做。不至于越权操做致使系统安全隐患。数据库
那么如何解决多个管理员都能解决系统并且又不让超级权限泛滥呢?这就须要sudo管理来代替或者结合su命令来完成这样苛刻且必要的服务器用户管理需求。apache
针对公司里面不一样部门,根据员工的具体工做职能(例如:开发,运维数据库管理员等),分等级、层次的的实现对Linux服务器管理权限的最小化和规范化。这样既减小了运维管理的成本,消除了安全隐患,也提升了工做效率,实现了高质量、快速化的完成项目进度以及平常的系统维护。api
说明:实施方案通常由积极主动发现问题的运维人员提出问题的,而后写好方案,再召集你们讨论可行性,最后肯定方案,实施部署,最后后期维护总结。安全
思想:在提出问题以前,必定要想到如何解决,一并发出来解决方案服务器
到此为止:你应该写完权限规划文档了。架构
召集相关部门的领导经过会议讨论或者组织领导沟通肯定权限管理方案的可行性。须要支持的人员:运维经理或者总监,CTO的支持、各部门领导的支持。咱们做为运维人员,拿着老师这样类型的方案,给你们讲解这个文档。经过会议的形式作演讲,慷慨激昂的演说,取得老大们的承认。才是项目能够实施的前提。固然,若是不实施,你也获得了锻炼,老大对你积极主动的思想网站架构问题也是另眼看待的。并发
肯定方案的可行性之后,会议负责汇总,提交、审核全部相关人员对Linux服务器的权限须要问题。负载均衡
取得老大们的支持之后,经过发邮件或者联系相关人员取得须要的相关员工权限。好比说:请各部门经理整理归类本部门须要登陆的Linux的权限人员名单、职位、以及负责的业务及权限。若是说不清楚权限细节,就说负责的业务细节。这样运维人员就能够肯定须要是什么权限了。
按照需求执行Linux命令程序以及公司业务服务来规划权限和人员对应配置。
主要是运维人员根据上面搜集的人员名单,须要的业务以及权角色,对应帐号的配置权限,实际上就是sudo配置文件。
权限方案一旦实施之后,全部员工必须经过《员工Linux服务器管理权限申请表》来申请对应的权限,肯定审批流程,规范化管理。这里实施后,把住权限申请流程很重要,不然你们不听话,方案实施也会泡汤的。
写操做说明,对各部门人员进行操做讲解,sudu执行命令,设计的PATH变量问题。运维提早处理好。
信息采集的结果以下:
某部门IDC权限细化方案:
目前IDC系统帐号全部的权限都是超级权限,在安全方面存在着隐患,本着“给用户尽量少的权限但仍容许他们完成任务”的宗旨,现在对经常使用命令进行分类细化:
权限对照表格:
PROCESSES |
/bin/kill, /usr/bin/kill, /usr/bin/killall, /usr/bin/pkill, /bin/netstat, /bin/ps |
FCMD_0 |
/sbin/reboot, /sbin/shutdown, /sbin/init 0, /sbin/init 6 |
FCMD_1 |
/bin/su - adsystem,/bin/su - audit,/bin/su - huapi, /bin/su - searchcenter, /bin/su - swebNg |
FCMD_2 |
/server/script/rhy/shangxian, /server/script/rhy/shangxian/haShangxian/shangxian,
|
FCMD_3 |
/bin/cat,/bin/ls |
|
拥有权限 |
简要说明 |
普通开发权限 |
NOPASSWD:FCMD_1,FCMD_3,PROCESSES |
无需密码切换到分用户杀死进程重启服务,查看等权限 |
开发sudo权限 |
NOPASSWD:!/bin/sudo su - root,FCMD_0 |
除了能够切到root,苏能够执行除重启机器外的全部权限 |
运维上线权 |
NOPASSWD:FCMD_1,FCMD_2,FCMD_3,PROCESSCE |
无密码切换到分用户,切换到负载均衡,重启服务 |
运维超级权 |
NOPASSWD:ALL |
全部权限 |
分用户权限 |
NOPASSWD:PROCESSER, /run/apache/bin/apachectl -k start |
分用户杀死和启动进程 |
作了以下的测试结果:
建立了三个普通分用户t1,t2,t3, shell脚本以下:
#create three user t1 t2 and t3
for u in t1 t2 t3
do
useradd $u
echo "123"|passwd --stdin $u
done
建立了四个权限测试用户,为普通开发权限、开发sudo权限,运维上线权限,运维超级权限
#create develope users and operators as test
for name in ordinary_develop sudo_develop ordinary_operator root_operator
do
useradd $name;
echo "123"|passwd --stdin $name;
done
先在文本文件中编辑visodu的设置:
#set command by option
Cmnd_Alias PROCESSER = /usr/sbin/useradd,/usr/sbin/userdel
Cmnd_Alias FCMD_0 = /sbin/reboot, /sbin/shutdown, /sbin/init 0, /sbin/init 6
Cmnd_Alias FCMD_1 = /bin/su - t1, /bin/su - t2, /bin/su - t3
Cmnd_Alias FCMD_2 = /server/script/rhy/shangxian, /server/script/rhy/shangxian/haShangxian/shangxiain
Cmnd_Alias FCMD_3 = /bin/cat, /bin/ls
#show HOST
#Host_Alias SERVICE = smtp, smtp2, moban
#set users
User_Alias ORDINARY_DEVELOP = ordinary_develop
User_Alias SUDO_DEVELOP = sudo_develop
User_Alias ORDINARY_USERS = t1, t2, t3
User_Alias ORDINARY_OPERATOR = ordinary_operator
User_Alias ROOT_OPERATOR = root_operator
#Runas_Alias OP = root
#set authority
ORDINARY_DEVELOP SERVICE=(OP) NOPASSWD:FCMD_1,FCMD_3,PROCESSER
SUDO_DEVELOP SERVICE=(OP) NOPASSWD:!/bin/sudo su - root,!/bin/sudo su -,FCMD_0
ORDINARY_OPERATOR SERVICE=(OP) NOPASSWD:FCMD_1,FCMD_2,FCMD_3,PROCESSER
ROOT_OPERATOR SERVICE=(OP) NOPASSWD:ALL
ORDINARY_USERS SERVICE=(OP) NOPASSWD:PROCESSER, /run/apache/bin/apachectl -k start
再使用visodu进行编辑配置
登陆sudo_develop测试权限:
测试结果很不错,很好的控制住了用户的权限。