Linux用户权限集中管理方案

一、问题

服务器多,各个服务器上的管理人员多,ROOT权限泛滥,经常导致文件莫名其妙丢失,老手和新手对服务器的熟知程度不同,安全存在不稳定和操作安全隐患。

二、方案

利用sudo配置指定用户只能执行指定的命令

# 通过用户别名定义用户集
CHUJIADMINS	初级运维
GWNETADMINS	网络工程师
CHUJI_KAIFA	初级开发
# 通过命令别名定义权限集
CY_CMD_1	初级运维
GY_CMD_1	高级运维
CK_CMD_1	初级开发
GK_CMD_1	高级开发
GW_CMD_1	高级运维

2.1 创建用户

# 建立3个初级运维,一个高级运维,一个网络工程师,一个运维经理,密码统一是111111
for user in chuji001 chuji002 chuji003 senior001 net001 manager001
do
	useradd $user
	echo "111111"|passwd --stdin $user
done

# 建立5个开发人员,属于phpers组,一个高级开发,一个开发经理
groupadd -g 666 phpers
for n in `seq 5`
do
	useradd -g phpers php00$n
	echo "111111"|passwd --stdin php00$n
done
for user in seniorphpers kaifamanager001
do
	useradd $user
	echo "111111"|passwd --stdin $user
done

2.2 sudo配置

##User_Alias
User_Alias CHUJIADMINS = chuji001,chuji002,chuji003
User_Alias GWNETADMINS = net001
User_Alias CHUJI_KAIFA = %phpers          # phpers组

##Cmnd_Alias 
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,/usr/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/rfcom,/usr/bin/wvdial,/sbin/iwconfig,/sbin/mii-tool,/bin/cat/var/log/*

##Runas_Alias
Runas_Alias OP = root          # 普通用户使用root用户角色操作

##pri config
senior001        ALL=(OP)    GY_CMD_1
manager001       ALL=(ALL)    NOPASSWD:ALL
kaifamanager001  ALL=(ALL)    ALL,/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root,!/usr/sbin/visudo,!/usr/bin/vi *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

2.3 测试

2.4 清空用户数据

for user in chuji001 chuji002 chuji003 senior001 net001 manager001
do
	userdel -r $user
done

for n in `seq 5`
do
	userdel -r php00$n
done
for user in seniorphpers kaifamanager001
do
	userdel -r $user
done

groupdel phpers

三、参考

企业项目案例1-用户权限集中管理方案-问题分析

猜你喜欢

转载自my.oschina.net/yysue/blog/1790313