Linux课程笔记 系统集权分治管理sudoer配置案例

1. 完成本案例,可以在增加以下项目经验:

服务器用户权限管理改造方案与实施项目

  1. 提出权限整改解决方案改进公司超级权限root泛滥的现状
  2. 召集大家开会讨论确定方案后推进实施
  3. 实施后使得公司的权限管理更加清晰了

 

2. 问题现状

公司服务器管理人员多,(开发+运维+架构+DBA+产品+市场),使用Linux服务器时,不同职能的员工操作不规范,root权限泛滥

 

3.项目需求

既希望超级用户root密码掌握在少数或者唯一的管理员手中,又希望多个系统管理员有相关权限

 

4 实施方案

4.1 信息采集

4.1.1 召集相关各部门领导通过会议讨论或是与各组领导沟通确定权限方案的可行性

      需要支持人员:运维经理、CTO支持、各组的领导。我们作为运维人员,拿着类似老师给大家讲解的这个文档,通过会议形式做演讲,慷慨激昂的演说,取得大佬们的支持

 

4.1.2 汇总、提交、审核所有相关员工对Linux服务器的权限需求

      取得大佬们的支持后,通过发邮件或者联系相关人员取得需要的信息。比如说,让各个部门的经理整理归类本部门需要权限的人员名单、职位及对应的业务及权限

 

4.1.3 按照linux命令及服务规划权限

    主要是运维人员根据上面手机的名单,对应账号配置权限

 

4.1.4 权限方案实施后,所有员工必须通过《员工Linux服务器管理权限申请表》来申请对应的权限,确定审批流程,规范化管理。

 

4.2 收集员工职能和对应权限

  1)初级运维3名

  权限分配:普通用户的权限,所管理的服务器的ALL权限,但是排除一些危害及切换root的权限

 

Cmnd_Alias  C_CMD_1 = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root, !/sbin/fdisk, !/sbin/parted, !/bin/rm, !/bin/su, !/usr/sbin/visudo, !/usr/bin/vi * *sudo*, !/bin/vi*sudo*

 

   2) 运维经理和高级运维:各一名

权限分配:普通用户的权限,所管辖的服务器的ALL权限

 

4)   网络工程师:1名

权限分配:普通用户的权限,查看网络配置,并排除故障的权限

Cmnd_Alias  N_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/*

 

5)  普通开发:10名

 权限分配:普通用户的权限,对应服务的查看日志的权限,重启对应服务权限

 大公司:项目负责制的规定

 

Cmnd_Alias   P_CMD_1 = /bin/cat  ~/log/*, /bin/cat /var/log/message, /bin/cat /app/log/*, /bin/sh /  ~/scripts/deploy.sh

 

4.3 创建用户角色

   建立3个初级运维,一个网络工程师,一个运维经理,一个高级运维经理的用户,密码是111111

for  user  in  chuji001 chuji002 chuji003  net001 senior001 manager001

do

useradd  $user

echo  “111111” | passwd --stdin  $user

done

  

建立10个开发人员,属于phpers组

groupadd   -g  999  phpers

for  n   in  `seq  10`

do

     useradd -g phpers  php00$n

done

 

4.4 sudoers配置内容

   事先要备份/etc/sudoers文件,cp /etc/sudoers  /etc/sudoers.ori

##Cmnd_Alias  by  oldboy##2012

Cmnd_Alias  C_CMD_1 = !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*, !/usr/bin/passwd root, !/sbin/fdisk, !/sbin/parted, !/bin/rm, !/bin/su, !/usr/sbin/visudo, !/usr/bin/vi * *sudo*, !/bin/vi*sudo*

 

Cmnd_Alias  N_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/*

 

Cmnd_Alias   P_CMD_1 = /bin/cat  ~/log/*, /bin/cat /var/log/message, /bin/cat /app/log/*, /bin/sh /  ~/scripts/deploy.sh

## User_Alias by oldboy###2012

User_Alias    ADMINS = senior001, manager01

User_Alias    CHUJIADMINS = chuji001, chuji002, chuji003

User_Alias    NETADMINS = net001

User_Alias    PROGRAMERS = %phpers

 

##Runas_Alias  by oldboy##2012/11/30

Runas_Alias   SUUSER = root

 

#pri config

ADMINS        ALL=(ALL)       NOPASSWD:ALL

CHUJIADMINS   ALL=(SUUSER)    NOPASSWD:ALL,C_CMD_1

NETADMINS     ALL=(SUUSER)   NOPASSWD:N_CMD_1

PROGRAMERS   ALL=(SUUSER)    NOPASSWD:P_CMD_1

 

 

posted @ 2017-04-23 14:26  fengze  阅读(291)  评论(0编辑  收藏  举报