未加星标

用户管理生产环境实践案例

字体大小 | |
[系统(linux) 所属分类 系统(linux) | 发布者 店小二05 | 时间 2016 | 作者 红领巾 ] 0人收藏点击收藏

关于用户管理的命令回顾:

visudo

用户管理生产环境实践案例

1. 关于用户管理命令的回顾

2. 正文

关于用户管理的命令回顾:

<1> useradd命令

<2> 其他命令

(1)信息收集

(2)模拟用户测试

<1> 问题现状

<2> 需求分析

<3> 实现方针

<4>. 实施过程

1. 关于用户管理命令的回顾 <1> useradd命令

useradd

-g:指定组

-u:指定uid

-c:注释

-s: 指定用户登入后所使用的shell。

-d: 指定用户登入时的起始目录

-G: 指定用户所属的附加群组(也就是多群组)

-M: 不要自动建立用户的登入目录

-D: 变更预设值(不太理解)

-e:指定账户的有效期限

<2> 其他命令

userdel

usermod

groupadd

groupdel

passwd

chage

su

sudo

visudo

groups

id

w,whoami,last

2. 正文 <1> 问题现状

当公司里的服务器有几十甚至超过上百台,并且能操作服务器的人员很多(开发+运维+架构+DBA),当大家登陆使用linux服务器时,不同职位的员工水平不同,导致操作不符合规范,不同部门的人员的服务器权限没有明确的规范,经常导致文件丢失,这样导致服务器的安全存在很大问题。为了解决以上问题,单个用户管理权限过大现状,现提出针对Linux服务器用户权限集中管理的解决方案。

<2> 需求分析

生产环境中,我们既希望root密码掌握在少数人手中,又希望多个服务器系统管理员或者相关职能的人,能够完成更多与自身职能相关的服务器工作,又不导致越权操作导致服务器安全隐患。

在此就需要 sudo 管理来和 su 来一起完成生产环境服务器对用户的管理需求。

<3> 实现方针

生产环境中,应该针对不同部门(开发部门,运维部门,DBA,网络部门等)的不同职能的工作人员(项目经理,开发主管,运维主管,架构师,DBA,网络工程师,开发工程师,运维工程师等),分等级的分配服务器的权限,尽量使对应人员的服务器权限最小化。

这样即减少了服务器安全隐患,又让不同部门不同职能的工作人员提升工作效率,提升项目进度。

<4>. 实施过程 (1)信息收集

1.1 各部门收集汇总不同职能的工作人员所需要的服务器权限,并有各部门负责人审核对应员工的服务器权限需求。并且整理成表格如下,之后针对此表格举行会议进行终审。

举例的表格如下:

姓名 价格 jiage shuliang 张三 php中级开发 旅游业务开发 上传文件到Nginx 王五 开发经理 **项目负责 ALL,但不能修改密码 …

1.2审核通过后,运维部门根据表格进行相关人员的 测试 服务器权限配置,也就 visudo 来进行配置。配置完成后运维部门负责人进行审核并交由测试部门测试,汇报相关结果。测试环境没有出现问题后,配置正式服务器环境,并进一步交由测试部门测试并给出结果。相关人员服务器权限存入数据库并备份。

1.3方案实施后,新入员工须通过《员工服务器管理权限申请表》来申请对应的权限,并将结果记录进数据库。相关人员的服务器权限变动须提交部门负责人审批,并将结果实时记录进入数据库。

1.4运维部门针对服务器权限写出文档,并对相关人员进行培训。

权限分配审核结果的权限分配举例(不同公司根据不同业务讨论给出,这里不罗列给出):

zhineng master 初级运维 /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig… 高级运维 /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/mount,/usr/bin/yum,/bin/umount 运维经理 ALL 开发 /sbin/service,/sbin/chkconfig,tail /app/log*,grep /app/log*,/bin/cat,/bin/ls … (2)模拟用户测试

测试建立3个初级运维,1个高级运维,1个网络工程师,1个运维经理,方便起见,密码统一设置为111111

for user in junSa001 junSa002 junSa003 senSa001 net001 saManager001do useradd $user echo "111111"|passwd --stdin $userdone

之后建立5个开发人员,属于phpers组

groupadd -g 666 phpersfor n in `seq 5`do useradd -g phpers php00$n echo "111111"|passwd --stdin php00$ndone

(以下所有配置写入visudo)定义各个部门各个职能可执行的命令组:

##Cmnd_Alias 初级运维命令组
Cmnd_Alias JY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig
##Cmnd_Alias 高级运维命令组
Cmnd_Alias SY_CMD_1 = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostname,/sbin/ifconfig,/bin/mount,/usr/bin/yum,/bin/umount
##Cmnd_Alias 开发命令组
Cmnd_Alias KF_CMD_1 = /sbin/service,/sbin/chkconfig,tail /app/log*,grep /app/log*,/bin/cat,/bin/ls

之后给用户组定义别名:

##User_Alias
User_Alias CHUJIADMINS = junSa001 junSa002 junSa003
User_Alias GWNETADMINS = net001
##phpers组
User_Alias CHUJI_KAIFA = %phpers

定义OPERATOR,执行root的权限命令

##Runas_AliasRunas_Alias OP = root

接下来就是主配置了:

CHUJIADMIS ALL=(OP) JY_CMD_1
GWNETADMINS ALL=(OP) SY_CMD_1
CHUJI_KAIFA ALL=(OP) KF_CMD_1
kaifaManager ALL=(ALL) ALL,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/bin/vi *sudoer*##....

切换到junSa001用户,执行sudo -l命令,可以看到junSa001用户可以执行的命令:

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

测试发现,执行sudo useradd,则没有权限执行命令:

[[email protected] ~]$ sudo useradd kkkk
Sorry, user chuji001 is not allowed to execute '/usr/sbin/useradd kkkk' as root on localhost.localdomain.

本文系统(linux)相关术语:linux系统 鸟哥的linux私房菜 linux命令大全 linux操作系统

分页:12
转载请注明
本文标题:用户管理生产环境实践案例
本站链接:http://www.codesec.net/view/484568.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 系统(linux) | 评论(0) | 阅读(37)