首页 男生 其他 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

  您可以在百度里搜索“Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版) 艾草文学(www.321553.xyz)”查找最新章节!

  

  15.2.4 项目实施过程

  说明:实施方案一般是由积极主动发现问题的运维人员提出问题,然后写好解决方案,再召集大家讨论可行性,最后确定方案,实施部署,之后就是后期的总结维护了。

  老男孩思想:在提出问题之前,一定要想到如何解决,并给出解决方案。

  假设现在你已经写完了权限规划文档(见附录A和附录B)。

  做项目,相当于一次变法:变法是有代价的,取得“老大”(运维总监、技术总监)的支持极其重要。

  1. 信息采集(含整个方案流程)

  1)召集相关各部门的领导,通过会议讨论,或者是与各组领导沟通以确定权限管理方案的可行性。

  需要支持的人员:运维经理或总监、CTO、各部门组的领导。作为运维人员,拿着类似本书介绍的项目方案(本章内容),通过会议形式为大家讲解文档,以期取得各部门组领导的支持和认可,这才是项目能够得以最终实施的前提。当然,即使实施不了,你的能力也得到了锻炼,各部门组领导对你积极主动思考问题的态度也会另眼相看的。

  2)确定方案的可行性之后,会议负责人汇总、提交、审核所有相关员工对Linux服务器的权限需求。

  取得各部门组领导的支持后,通过发邮件或者联系相关人员取得相应的权限信息。比如说,请各个部门的经理整理归类本部门需要登录Linux权限的人员名单、职位,以及负责的业务及权限等,如果无法清楚描述权限细节,就描述所负责的业务细节,这样,运维人员就可以确定各相关人员具体需要的权限了(见表15-2)。

  3)按照需要执行的Linux命令程序及公司业务服务来规划权限和人员的对应配置。

  主要是运维人员根据上面收集的人员名单、需要的业务及权限角色,并根据对应的账号配置权限,实际上就是配置sudo配置文件。

  4)权限方案一旦实施之后,所有的员工都必须通过《员工Linux服务器管理权限申请表》来申请对应的权限,确定审批流程,规范化管理。这里实施权限方案之后一定要控制住后期的权限申请流程,否则,大家不按要求来,即使方案实施完也会半途而废的。

  5)撰写操作说明,对各部门人员进行操作讲解。通过sudo执行命令,若会涉及PATH变量问题,则运维需要提前处理好。

  表15-2 信息采集表格

  2. 收集员工职能和对应的权限

  收集员工职能和对应权限的过程需要召集大家开会确定,或者请各组领导安排人员进行统计汇总。将需要权限的人员及对应的工作职责交给运维人员,由运维人员优化职位所对应的系统权限,具体见表15-3至表15-7。

  表15-3 运维组的级别和权限

  表15-4 开发组的级别和权限

  表15-5 架构组的级别和权限

  表15-6 DBA组的级别和权限

  提示:如果授权ALL,那么在进行故障排除时,有时会让我们防不胜防。这种先开后关的策略并不是好的策略。比较好的策略,是白名单机制,即只写授权的命令,不用ALL。

  表15-7 网络组的级别和权限

  3. 模拟创建用户角色

  1)建立3个初级运维,一个高级运维,一个网络工程师,一个运维经理,密码统一是111111。示例代码如下:

  for user in chuji001 chuji002 chuji003 net001 senior001 manager001

  do

  useradd $user

  echo "111111"|passwd --stdin $user

  done

  2)建立5个开发人员,属于phpers组。示例代码如下:

  groupadd -g 999 phpers

  for n in `seq 5`

  do

  useradd -g phpers php00$n

  echo "111111"|passwd --stdin php00$n

  done

  for user in kaifamanager001 seniorphpers

  do

  useradd $user

  echo "111111"|passwd --stdin $user

  done

  3)根据前面的表格配置sudoer文件对应的内容。示例代码如下:

  ##各种别名定义

  ##Cmnd_Alias by oldboy##2012

  Cmnd_Alias CY_CMD_1 = /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /sbin/ifconfig, /bin/netstat, /sbin/route

  Cmnd_Alias GY_CMD_1 = /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /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, /bin/tail /app/log*, /bin/grep /app/log*, /bin/cat, /bin/ls, /bin/sh ~/scripts/deploy.sh

  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 oldboy##2012

  User_Alias CHUJIADMINS = chuji001,chuji002,chuji003

  User_Alias GWNETADMINS = net001

  User_Alias CHUJI_KAIFA = %phpers

  ##Runas_Alias by old_boy##2012/11/30

  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 *sudoer*

  kaifamanager001 ALL=(ALL)ALL, /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root, !/usr/sbin/visudo, !/usr/bin/vim,!/bin/vi, !/usr/bin/sudo su -,!/bin/su

  #授权规则

  seniorphpers ALL=(OP) GK_CMD_1

  CHUJIADMINS ALL=(OP) CY_CMD_1

  GWNETADMINS ALL=(OP) GW_CMD_1

  CHUJI_KAIFA ALL=(OP) CK_CMD_1

  #注意:

  1)别名名字要大写。

  2)所有命令的路径均要使用全路径,每个命令之间用逗号进行分隔。

  3)超过一行用“”换行。

  4)!号表示排除。

  5)无法控制Linux Bash内置命令。

  4. 项目结束其他扫尾工作

  1)配置完毕后,需要使用不同的用户登录实战调试测试。

  2)调试成功后发邮件周知所有人权限配置生效,并附带操作说明。

  3)尽快给参与使用的人,进行培训讲解,以确保大家都能熟练操作。

  4)制定新的权限申请流程及申请表(见附录B)。

  5. 项目结束后的后期维护规则

  • 项目结束后,后期的维护不再是特别紧急的需求,一律走权限申请流程。

  • 服务器多了,可以通过ansible分发软件批量分发/etc/sudoers文件(注意权限和语法检查)。

  • 除了进行权限上的控制,在账户有效时间上也要进行限制,这样才能让安全最大化。

  • 将所有应用服务降权到用普通用户运行,并将所有的程序都放在对应的用户家目录下面。启动的时候也是通过这个账户运行,这样就可以用普通用户权限启动和停止对应服务了。 Linux/Unix技术丛书·跟老男孩学Linux运维:核心基础篇(上)(第2版)

目录
设置
手机
书架
书页
评论