Linux 账户认证与授权分离 RBAC 指南

陌辰小哥_3569

陌辰小哥_3569

2026-06-10

462人浏览

原创

linux不原生支持rbac,但可通过sudo、selinux、pam与文件权限协同构建企业级最小化授权模型,核心是落实“角色抽象—权限绑定—用户指派”,在命令、进程、资源三层实现精细化控制,并配套审计、版本化与生命周期管理。

linux 账户认证与授权分离 rbac 指南

Linux 本身不区分认证与授权环节,但通过合理组合机制,完全可以实现“认证归认证、授权归授权”的分离式 RBAC 管理。关键不是替换系统登录流程,而是让身份验证(你是谁)和权限执行(你能做什么)解耦——用户用密码或密钥登录后,其后续操作能力由角色策略动态决定,而非登录 Shell 或 UID 直接赋予。

认证层:聚焦身份核验,不掺杂权限逻辑

认证只管“是不是本人”,不决定“能干啥”。应严格限制认证文件的干预范围:

  • /etc/passwd 和 /etc/shadow 仅用于存储凭证和基础账户状态,禁止在其中嵌入权限字段(如 GECOS 字段不写角色名)
  • 禁用 .rhosts、hosts.equiv 等弱认证方式;SSH 登录强制使用密钥+可选 MFA,关闭 PasswordAuthentication
  • 若需多因素,通过 PAM 模块(如 pam_google_authenticator 或 pam_yubico)在 auth 堆栈中处理,不把 OTP 验证结果映射为 sudo 权限
  • 所有用户默认使用受限 Shell(如 /bin/bash 或 /usr/bin/zsh),不设 /bin/false、/sbin/nologin 作为常规账户登录 Shell(除非明确禁止交互,如服务账户)

授权层:用角色容器承接权限,与登录身份解绑

授权必须脱离 UID/GID 的静态绑定,转为“用户→组(角色)→命令/进程域”的三级映射:

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载
  • 创建职能明确的角色组,如 netadmin、logviewer、cert-manager,组名不带“user”“dev”等模糊前缀
  • 在 /etc/sudoers.d/ 下按角色建独立文件,例如 /etc/sudoers.d/rbac-logviewer,内容只含该角色所需命令别名与组绑定
  • 每个角色组仅允许切换到预设目标用户(如 %logviewer ALL=(syslog) /usr/bin/journalctl),禁止 (ALL) 全局提权
  • 敏感操作强制指定运行上下文:sudo -u syslog journalctl -u nginx --since "2 hours ago"

进程级隔离:补足 sudo 无法约束的行为边界

sudo 控制“能不能运行”,SELinux 控制“运行后能访问什么”。两者叠加才构成完整授权链:

  • 启用 enforcing 模式:setenforce 1;确认 sestatus 输出为 “enabled” 和 “enforcing”
  • 为关键角色脚本打专用类型标签,例如备份脚本 chcon -t backup_exec_t /opt/bin/db-dump.sh
  • 用 sesearch 验证进程域是否越权:sesearch -A -s backup_agent_t -t etc_t -c file -p write(应拒绝)
  • 拒绝用 permissive 模式“绕过问题”,所有 avc 拒绝日志需 audit2why 分析并生成最小化策略模块

审计与闭环:让每次权限变更可追溯、可验证、可回收

没有审计的 RBAC 是纸面模型。授权有效性必须靠主动探测和周期清理来保障:

  • 每日执行 sudo -l -U $user > /var/log/rbac/audit-$user.log,比对基线发现隐式扩权
  • 每周扫描 sudoers 语法:find /etc/sudoers* -type f -exec sudoers -c {} \;
  • 每月同步 HR 系统离职名单,自动移除角色组成员:getent group netadmin | cut -d: -f4 | tr ',' '\n' | grep -v '^$' | while read u; do id "$u" &>/dev/null || gpasswd -d "$u" netadmin; done
  • 所有 /etc/sudoers.d/ 文件纳入 Git 版本库,CI 流水线校验新增规则是否含 !/bin/sh、!/usr/bin/su 等防护项

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux linux 权限管理

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3910

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3353

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2493

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6030

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5662

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3333

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2825

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

3059

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

297

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习