04-生产环境linux服务器权限控制实例

@

1. 权限规划

1.1 root 组

  • 用户名:root
  • 用户说明:服务器管理员
  • 可用场景:部署环境初始化
  • 账号分发和回收:
    • 默认管理员账号
    • 由服务器管理员保管,非必要不使用该账号
    • 环境初始化完成后,服务器管理员必须将该账号收回

1.2 docker组

  • 用户名:deploy
  • 用户说明:服务管理员
  • 敏感权限或风险操作:无
  • 可用场景:
    • 服务的部署和更新
    • 服务配置更改和日常管理
    • 容器的生命周期管理
  • sudo控制:无
  • 账号分发和回收
    • 由服务器管理员创建
    • 环境初始化完成后分发给交付或运维负责人。
    • 该账号不回收,使用人员变更时必须更改密码或更换秘钥。
    • 如使用密码,建议定期更换

1.3 运维组

1.3.1 项目运维负责人

  • 用户名:建议以用户名字命名
  • 用户说明:项目运维负责人
  • 敏感权限或风险操作:所有权限
  • 可用场景:
    • 系统和环境维护
    • 服务器巡检和安全检查
  • sudo控制:ALL
  • 账号分发和回收
    • 由服务器管理员创建
    • 分发给该项目运维负责人使用
    • 如果使用密码登录,首次登录必须更改密码。
    • 更换项目运维负责人时回收该账号

1.3.2 高级运维人员

  • 用户名:建议以用户名字命名
  • 用户说明:高级运维人员
  • 敏感权限或风险操作:
    • 磁盘挂载/卸载
  • 可用场景:
    • 系统和环境日常维护
    • 服务器巡检和安全检查
  • sudo控制:
    /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/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,/usr/bin/docker,/usr/bin/docker-compose
  • 账号分发和回收
    • 由项目运维负责人创建
    • 分发给该项目高级运维人员使用
    • 如果使用密码登录,首次登录必须更改密码。
    • 使用者离开项目,回收该账号。

1.3.3 初级运维人员

  • 用户名:建议以用户名字命名
  • 用户说明:初级运维人员
  • 敏感权限或风险操作:
  • 可用场景:
    • 服务器巡检和安全检查
  • sudo控制:
    • /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/sbin/ifconfig,/bin/netstat,/sbin/route,/usr/bin/cat,/usr/bin/docker-compose
  • 账号分发和回收
    • 由项目运维负责人创建
    • 分发给该项目初级运维人员使用
    • 如果使用密码登录,首次登录必须更改密码
    • 使用者离开项目,回收该账号。

1.4 开发组

1.4.1 开发负责人

  • 用户名:建议以用户名字命名
  • 用户说明:开发负责人
  • 敏感权限或风险操作:
    • 可见生产数据库密码
  • 可用场景:
    • 查看服务配置
    • 查看服务日志
  • sudo控制:
    • /sbin/chkconfig,/usr/bin/tail /app/log,/bin/grep /app/log,/bin/cat,/bin/ls,/usr/bin/docker-compose
  • 账号分发和回收
    • 由服务器管理员或项目运维负责人创建
    • 分发给该项目开发负责人使用
    • 更换项目运维负责人时回收该账号

1.4.1 开发人员

  • 用户名:建议以用户名字命名
  • 用户说明:开发人员
  • 敏感权限或风险操作:
  • 可用场景:
    • 查看服务日志
  • sudo控制:
    • /usr/bin/tail /app/log,/bin/grep /app/log,/bin/ls,/usr/bin/docker-compose ps,/usr/bin/docker-compose logs
  • 账号分发和回收
    • 由项目运维负责人创建
    • 分发给该项目开发人员使用。
    • 使用者离开项目,回收该账号。

2. 实施

2.1 deploy用户

  • 创建docker用户组
[root@liubei-dev ~]# groupadd docker
  • deploy用户加入docker
[root@liubei-dev ~]# gpasswd -a deploy docker
  • 更新组信息
[root@liubei-dev ~]# newgrp docker
  • 重启docker

2.2 创建运维组

  • 创建opers
[root@liubei-dev ~]# groupadd opers
  • 创建用户账号
    • 运维负责人:liubei
    • 高级运维:guanyu zhangfei
    • 初级运维:zhoucang
[root@liubei-dev ~]# for i in liubei guanyu zhangfei zhoucang;do useradd $i;done
  • 设置默认密码
[root@liubei-dev ~]# for i in liubei guanyu zhangfei zhoucang; do echo '123456' | passwd $i --stdin;done

如果报令牌错误可以改为:

[root@liubei-dev ~]# for i in liubei guanyu zhangfei zhoucang; do echo "$i:123456" | chpasswd;done
  • 将人员加入oper组
[root@liubei-dev ~]# gpasswd -M liubei,guanyu,zhangfei,zhoucang opers

2.2 创建开发组

  • 创建opers
[root@liubei-dev ~]# groupadd devs
  • 创建用户账号
    • 开发负责人:zhugeliang
    • 开发人员:pangtong fazheng
[root@liubei-dev ~]# for i in zhugeliang pangtong fazheng;do useradd $i;done
  • 设置默认密码
[root@liubei-dev ~]# for i in zhugeliang pangtong fazheng; do echo '123456' | passwd $i --stdin;done

如果报令牌错误可以改为:

[root@liubei-dev ~]# for i in zhugeliang pangtong fazheng; do echo "$i:123456" | chpasswd;done
  • 将人员加入devs组
[root@liubei-dev ~]# gpasswd -M zhugeliang pangtong fazheng devs

2.4 修改sudo权限

[root@liubei-dev ~]# visudo

修改如下

################################################################
# 定义用户组 #
################################################################
################### 运维组 ###################
User_Alias OPER_ADMIN = liubei
User_Alias OPER_SENIORS = guanyu,zhangfei
User_Alias OPER_JUNIORS = zhoucang
################### 开发组 ###################
User_Alias DEV_ADMIN = zhugeliang
User_Alias DEV_GENERALS = pangtong,fazheng
################################################################
# 定义权限 #
################################################################
################### 运维组 ###################
Cmnd_Alias OPER_SENIOR = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/bin/hostnaem,/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,/usr/bin/docker,/usr/bin/docker-compose
Cmnd_Alias OPER_JUNIOR = /usr/bin/free,/usr/bin/iostat,/usr/bin/top,/sbin/ifconfig,/bin/netstat,/sbin/route,/usr/bin/cat
################## 开发组 ###################
Cmnd_Alias DEV_ADMIN = /sbin/chkconfig,/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/cat,/bin/ls,/usr/bin/docker-compose
Cmnd_Alias DEV_GENERAL = /sbin/chkconfig,/usr/bin/tail /app/log*,/bin/grep /app/log*,/bin/ls,/usr/bin/docker-compose ps,/usr/bin/docker-compose logs
################################################################
# 设置用户权限 #
################################################################
#################### 运维组 ###################
OPER_ADMIN ALL=(ALL) NOPASSWD:ALL
OPER_SENIORS ALL=(root) OPER_SENIOR
OPER_JUNIORS ALL=(root) OPER_JUNIOR
################### 开发组 ###################
DEV_ADMIN ALL=(root) DEV_ADMIN
DEV_GENERALS ALL=(root) DEV_GENERAL

posted on   运维开发玄德公  阅读(74)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2022-02-08 10-gorm-02-创建数据
2022-02-08 10-gorm-01-连接mysql和建表
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示