1、了解公司业务流程,提出权限整改解决方案,改进公司超级管理root权限泛滥问题
2、首先撰写方案,提出root权限泛滥的现状,给老大看,得到老大的支持后,召集大家开会讨论。
3、讨论确定可行后,由我推进实施
4、实施后效果,是否达到预期目标,撰写项目总结备案。
5、指定帐号权限申请流程及权限申请表格
经验:实施方案一般是由积极主动的人提出,并写好方案,召集大家讨论可行性,最后决定方案,实施部署,最后后期总结维护
思想:提出问题前,一定要想到如何解决,一并发出解决方案
此时一定撰写好了权限规划文档
项目需要支持人员:运维经理、CTO、各部门领导,注意即使得到老大的支持,也不要强行推行,和其他部门领导沟通好,有利于项目的实施。即使项目不通过,你的能力也得到了锻炼,老大也会对你的积极性和态度另眼相看。
1.1 人员名单、职位、负责业务及权限
人员名单 | 职位 | 负责业务及权限 |
Donglq | yunweijingli | 运维经理 |
chujikaifa | CK_CMD_1 | 机房Linux运行、维护、权限管理 |
gaojikaifa | GK_CMD_1 | SQL运行、维护、开发 |
wangluo | GW_CMD_1 | 网络工程师 |
1.2 按照需要执行的linux命令程序及公司业务服务来规划权限和人员对应配置(此处就是配置/etc/sudoers配置文件)
1.3 权限方案一旦实施后,所有员工都要通过《员工Linux服务器管理权限规定申请表》权限申请及提权都要走审批流程,规范化管理。把握住权限申请流程很重要,否则大家不听话项目也会泡汤。
1.4 书写操作说明,对各部门人员进行操作讲解。sudo执行命令设计到PATH环境变量问题,运维要提前处理好。
1.管理级别对应权限
级别 | 权限 | 备注 |
初级运维 | /usr/bin/free, /usr/bin/iostat, /usr/bin/top,/bin/hostname, /sbin/ifconfig, /bin/netstat, /sbin/route | |
高级运维 | /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 | |
高级网络工程师 | /sbin/route, /sbin/ifconfig, /bin/ping,/sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm,/sur/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool, /bin/cat/var/log/* | |
运维经理 | NOPASSWD:ALL |
2.Alias别名对应级别
级别 | 别名 |
初级运维 | CY_CMD_1 |
高级运维 | GY_CMD_1 |
高级网络工程师 | GW_CMD_1 |
运维经理 | Donglq |
3.Alias对应级别权限
详细配置
for 循环创建用户
for user in Donglq chujikaifa gaojikaifa wangluo
do
useradd $user
echo "111111"|passwd --stdin $user
done
visudo
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 GW_CMD_1 = /sbin/route,/sbin/ifconfig, /bin/ping, /sbin/dhclient, \
/usr/bin/net, /sbin/iptables, /usr/bin/rfcomm,/sur/bin/wvdial, \
/sbin/iwconfig, /sbin/mii-tool, /bin/cat/var/log/*
##User_Alias by oldboy##2012
User_Alias CHUJIADMINS =chujikaifa
User_Alias GWNETADMINS = wangluo
User_Alias GAOJIKAIFA =gaojikaifa
##Runas_Alias by oldboy##2012
Runas_Alias OP = root
#pri config
****** ALL=(OP) GY_CMD_1
CTO001 ALL=(ALL) NOPASSWD:ALL
Donglq ALL=(ALL) ALL, /usr/bin/passwd[A-Za-z]*, !/usr/bin/passwd root, !/usr/sbin/visudo, !/usr/bin/vi *sudoer*
CHUJIADMINS ALL=(OP) CY_CMD_1
GWNETADMINS ALL=(OP) GW_CMD_1
CHUJI_KAIFA ALL=(OP) CK_CMD_1
sudo -l 查看当前用户的权限
Matching Defaults entries for net001 on this host:
requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY
HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME
LANG LC_ADDRESS LC_CTYPE", env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT
LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User net001 may run the following commands on this host:
(root) /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net,
/sbin/iptables, /usr/bin/rfcomm, /sur/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool,
/bin/cat /var/log/*