zoukankan      html  css  js  c++  java
  • 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-用户权限集中管理方案-问题分析

  • 相关阅读:
    Java常用API(Arrays类)
    Java常用API(String类)
    Java常用API(Random类)
    Java匿名对象介绍
    Qt串口实现921600波特率的方法
    Qthread实现多线程操作
    小品QIODevice::Text参数
    Qt串口通信
    Linux下挂载新的磁盘
    互斥锁陷阱:优先级反转、死锁
  • 原文地址:https://www.cnblogs.com/okokabcd/p/8724620.html
Copyright © 2011-2022 走看看