标签:sbin 配置文件 tle 解决方案 管理系 部署 _id net linu
大家登陆Linux 服务器时,不同职能的员工水平不同,因此导致操作很不规范,root权限泛滥(几乎大部分人员都有root权限),经常导致文件等莫名其妙的丢失,老员工和新员工对服务器的熟知程度也不一样,这样使得公司服务器安全存在很大的不稳定性,为了解决上述问题,单个用户管理权限过大现状,现提出针对Linux服务器用户权限集中管理的解决方案。
当前我们公司服务器上百台,每个服务器上的管理人员很多(开发+运维+DBA+产品+市场),在大家登陆Linux 服务器时,不同职能的员工水平不同,因此导致操作很不规范,root权限泛滥(几乎大部分人员都有root权限),经常导致文件等莫名其妙的丢失,老员工和新员工对服务器的熟知程度也不一样,这样使得公司服务器安全存在很大的不稳定性,及操作安全隐患,调查企业服务器环境,50%以上的安全问题来自内部而不是外部。为了解决上述问题,单个用户管理权限过大现状,现提出针对Linux服务器用户权限集中管理的解决方案。
我们希望超级用户密码掌握在少数或者唯一的管理员手中,又希望多个系统管理员或相关权限的人员,能 够完成更多更复杂的自身职能相关的工作,又不至于越权操作导致系统安全隐患。
linux最小化原则:1 安装软件最小化 。2 目录文件权限最小化。3用户权限最小化。 4 程序权限运行最小化
那么,如何解决多个系统管理员都能管理系统而又不让超级权限泛滥的需求呢?这就需要sudo来替代管理或结合 su命令来完成这样的苛刻且必要的企业服务器用户管理需求。
针对公司里不同部门,根据员工的具体工作职能(例如:开发,运维,数据库管理员)。分等级、分层次的实现对linux服务器管理的权限最小化、规范化。这样即使减少了运维管理成本,消除了安全隐患,又提高了工作效率,实现了高质量的、快速化的完成项目进度,以及日常系统维护。
说明:实施方案一般是由积极主动发现问题的运维人员提出问题,然后写好方案,在召集大家讨论最后确定的方案,实施部署,最后后期总结维护。
思想:在提出问题之前,一定要想到如何解决,一并发出来解决方案。
信息采集(含整个方案流程)
[root@maiyat ~]# for n in chuji001 chuji002 chuji003 net001 manager001 ; do useradd $n ; echo "11111111" |passwd --stdin $n ;done;
[root@maiyat ~]# useradd GY01
[root@maiyat ~]# echo "11111111" |passwd --stdin GY01
[root@maiyat ~]# useradd senior001
[root@maiyat ~]# echo "11111111" |passwd --stdin senior001
建立五个开发属于python组
[root@maiyat ~]# groupadd -g 888 python
[root@maiyat ~]# for n in `seq -f kaifa%02g 5` ; do useradd -g 888 $n ;echo "11111111" |passwd --stdin $n; done;
建立开发经理和高级开发账号
[root@maiyat ~]# useradd kaifamanager |echo "11111111" |passwd --stdin kaifamanager
[root@maiyat ~]# useradd senior002
[root@maiyat ~]# echo "11111111" |passwd --stdin senior001
8 . 更改/etc/sudoers文件
在sudoers后面加入下列内容:
# Cmnd_Alias by Ouyoung
Cmnd_Alias CYCMD1 = /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /bin/netstat, /sbin/ifconfig, /sbin/route
Cmnd_Alias GYCMD1 = /usr/bin/free, /usr/bin/iostat, /usr/bin/top, /bin/hostname, /bin/netstat, /sbin/ifconfig, /sbin/route, /sbin/iptables, /etc/init.d/*, /bin/nice, /bin/kill
Cmnd_Alias CKCMD1 = /usr/bin/tail /app/log*, /bin/grep /app/log/*, /bin/cat, /bin/ls
Cmnd_Alias GKCMD1 = /sbin/service, /sbin/chkconfig, /usr/bin/tail /app/log*, /bin/grep /app/log/*, /bin/cat, /bin/ls
Cmnd_Alias KMCMD1 = ALL, /usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root, !/bin/vi /etc/sudoers, !/usr/bin/vim /etc/sudoers, !/usr/sbin/visudo
Cmnd_Alias GWCMD1 = /bin/hostname, /bin/netstat, /sbin/ifconfig, /sbin/route, /sbin/iptables, /bin/ping, /usr/bin/netstat
# User Aliases by Ouyoung
User_Alias CYUSER = chuji001, chuji002, chuji003, chuji004, chuji005
User_Alias GYUSER = GY01, senior001
User_Alias CKUSER = %python
User_Alias GKUSER = senior002
User_Alias MANUSER = kaifamanager
User_Alias GWUSER = net001
# config
CYUSER ALL=(ALL) CYCMD1
GYUSER ALL=(ALL) GYCMD1
CKUSER ALL=(ALL) CKCMD1
GKUSER ALL=(ALL) GKCMD1
MANUSER ALL=(ALL) NOPASSWD: KMCMD1
GWUSER ALL=(ALL) GWCMD1
9 . 验证配置如下:
用户 kaifamanager 可以在该主机上运行以下命令:
(ALL) NOPASSWD: ALL, /usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root, !/bin/vi /etc/sudoers, !/usr/bin/vim, !/usr/sbin/visudo
用户 kaifa01 可以在该主机上运行以下命令:
(ALL) /usr/bin/tail /app/log*, /bin/grep /app/log/*, /bin/cat, /bin/ls
用户 kaifa02 可以在该主机上运行以下命令:
(ALL) /usr/bin/tail /app/log*, /bin/grep /app/log/*, /bin/cat, /bin/ls
10 . 验证成功后发邮件知所有有关的人员权限配置成功,并附带操作说明,有必要的话培训讲解
11 . 制定权限申请流程及申请表
12 . 后期维护,不是特别紧急的需求,一律需要走申请流程。
服务器多了,如果同业务的服务器,且用户管理需求一样,可以通过分发工具批量分发/etc/sudoers(注意用户,组及权限),注意授权ALL再进行排除时有时候会让我们防不胜防,这种先开后关的策略不是好的策略
标签:sbin 配置文件 tle 解决方案 管理系 部署 _id net linu
原文地址:https://www.cnblogs.com/chacha51/p/11219924.html