您的位置:首页 > 其它

study-8【项目经验】企业项目案例1-用户权限集中管理方案

2016-11-25 11:11 375 查看
一,待解决问题:公司内部拥有root权限的人超过50%,帐号混乱

二,项目需求:希望超级用户root密码掌握在少数或唯一的管理员手中,又希望多个系统管理员或相关有权限的人员,能够完成更多更复杂的自身职能相关的工作,又不至于越权操作导致系统安全隐患;

最小化原则:1)安装软件最小化;2)目录文件权限最小化;3)用户权限最小化;4)程序运行权限最小化。

那么如何解决多个系统管理员都能管理系统而又不让超级权限泛滥的需求呢?这就需要sudo管理来替代或结合su命令 来完成这样的苛刻且必要的企业服务器用户管理需求。

三,具体实现:针对公司里不同部门,根据员工的具体工作只能(例如:开发、运维,数据库管理员), 分等级、分层次的实现对linux服务器管理的权限最小化、规范化。这样即减少了运维管理成本,消除了安全隐患,又提高了工作效率,实现了高质量的、快速化的完成项目进度,以及日常系统维护。

四,实施方案:提出问题、讨论问题(已经想好了解决方案)、确定实施部署、后期总结维护(完成权限解决文档);

1)请各位部门经理整理归纳本部门需要登录linux权限的人员名单、职位、及负责的业务及权限,如果说不清楚权限细节,就说负责的业务细节,这样运维人员就可以确定需要啥的权限了;

2)按照需要执行的linux命令程序及公司业务服务来规划权限和人员对应的配置,实际上就是配置sudo配置文件(把人员和命令做一个对应)

人员名单职位负责的业务对应服务器权限的命令
张三初级运维 /usr/bin/free等
    
    
五,实战

1)模拟创建用户角色

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

3)建立2个高级人员

for user in kaifamanager001 seniorphpers

do

useradd $user

echo "111111"|passwd --stdin $user

done

4)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  要切换到哪个(root)身份上执行命令

Runas_Alias OP = root

#pri config

#用户 主机=角色
命令#

senior001                      ALL=(OP)              GY_CMD_1

manager001                 ALL=(ALL)              NOPASSWD:ALL

#命令设置为ALL会有漏洞隐患,最好明确指定允许和不允许的命令权限

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

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)su - chuji001

2)查看自己拥有的命令权限:sudo - l

User chuji001 may run the following commands on this host:

    (root) /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname,

    /sbin/ifconfig, /bin/netstat, /sbin/route

3)修改主机名:sudo hostname xxx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐