当前位置: 首页 > news >正文

用户组权限及高级权限管理:从基础到企业级 sudo 提权实战

用户组权限及高级权限管理:从基础到企业级 sudo 提权实战

在 Linux/Unix 系统里,权限管理不是一个可有可无的小功能,而是系统安全的第一道防线。无论是个人电脑、企业服务器还是云环境,权限配置直接影响系统的稳定性和安全性。


一、Linux 权限模型基础

Linux 的权限控制有三大核心元素:

1. 用户(User)

  • 系统中的单个账号
  • 每个文件有一个属主(Owner)

2. 用户组(Group)

  • 用户的集合,用于批量分配权限
  • 每个文件有一个属组(Group Owner)
  • 用户可以属于一个主组多个附加组

3. 其他人(Others)

  • 不属于文件属主或属组的用户

文件权限位(rwx)

  • r = read(读)
  • w = write(写)
  • x = execute(执行)

文件的权限分三组:

-rwxr-x---^^^  ^  ^|   |  └── Others(其他人)|   └──── Group(组)└──────── User(属主)

例如:

-rw-r----- 1 alice devteam 2048 Aug 8 report.doc
  • 属主 alice:rw-
  • 属组 devteam:r–
  • 其他人:无权限

二、用户与组管理命令

用户管理

# 添加用户
sudo useradd -m -s /bin/bash alice# 修改用户信息
sudo usermod -s /bin/zsh alice  # 改 shell
sudo usermod -aG devteam alice  # 添加到附加组# 删除用户
sudo userdel -r alice  # -r 删除 home 目录

组管理

# 添加组
sudo groupadd devteam# 把用户添加到组
sudo gpasswd -a bob devteam# 从组移除用户
sudo gpasswd -d bob devteam

三、高级权限:SUID / SGID / Sticky Bit

1. SUID(Set User ID)

  • 可执行文件在运行时,临时获得文件属主的权限
  • 常用于普通用户运行需要 root 权限的程序
chmod u+s /usr/bin/passwd

/usr/bin/passwd 就用 SUID 让普通用户修改自己密码


2. SGID(Set Group ID)

  • 目录:新建文件自动继承目录的属组
  • 文件:执行时临时获得属组权限
chmod g+s /shared/projects

3. Sticky Bit

  • 用在公共可写目录(如 /tmp
  • 防止用户删除他人文件
chmod +t /tmp

四、sudo 提权机制

基础原理

sudo 允许普通用户以其他用户(通常是 root)身份执行命令,并可进行精细化控制。

配置文件

  • 位于 /etc/sudoers
  • 必须visudo 编辑,防止语法错误锁死系统

基本配置示例

# 允许用户 alice 无密码执行 systemctl restart nginx
alice ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx# 允许 devteam 组内所有用户执行 /opt/deploy.sh
%devteam ALL=(ALL) /opt/deploy.sh

五、企业实战案例:安全的 sudo 提权

背景

某互联网公司有 50 台生产服务器,研发团队需要:

  • 重启 Nginx
  • 部署更新
  • 查看日志

但不能给他们root 的完整权限


实施方案

1. 建立用户组
sudo groupadd webops
sudo usermod -aG webops alice
sudo usermod -aG webops bob
2. 创建部署脚本

/opt/deploy.sh

#!/bin/bash
git pull origin main
systemctl restart nginx
sudo chown root:webops /opt/deploy.sh
sudo chmod 750 /opt/deploy.sh
3. 配置 sudoers
%webops ALL=(ALL) NOPASSWD: /opt/deploy.sh, \/bin/systemctl status nginx, \/usr/bin/tail -n 100 /var/log/nginx/error.log
4. 安全控制
  • 禁止直接编辑 /etc/sudoers,统一用 visudo
  • 使用 sudo -l 让用户查看自己被允许的命令
  • 日志审计:/var/log/securejournalctl -u sudo

效果

  • 研发能完成部署与重启
  • 不能乱执行其他 root 命令
  • 所有 sudo 操作可审计、可追溯

六、安全建议

  1. 最小权限原则:只授予执行任务所需的最少命令
  2. 组管理优先于单用户配置,方便批量调整
  3. 配合审计,记录所有 sudo 操作
  4. 分离环境:生产、测试、开发机器权限隔离
  5. 定期复查 /etc/sudoers 和组成员

在这里插入图片描述

http://www.xdnf.cn/news/1262125.html

相关文章:

  • 《从零构建大语言模型》学习笔记2,文本数据处理1(以及tiktoken库无法下载gpt2参数,调用get_encoding时SSL超时的解决方法)
  • Redis是单线程性能还高的原因
  • SaaS 版 MES 系统业务文档
  • 【SpringBoot】SpringBoot配置
  • GPT OSS 双模型上线,百度百舸全面支持快速部署
  • 华为USG防火墙双机,但ISP只给了1个IP, 怎么办?
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(上)
  • C++信息学奥赛一本通-第一部分-基础一-第2章-第5节
  • 单层 PDF 与双层 PDF:一字之差,功能大不同
  • 修复C++14兼容性问题 逻辑检查
  • 力扣-238.除自身以外数组的乘积
  • FileLink:企业数据传输的革新者​
  • Node.js Turbo 包入门教程
  • Sklearn 机器学习 数据降维PCA 使用PCA算法
  • Spark在什么情况下CBO才会判断失误,如何避免
  • 什么是2米分辨率卫星影像数据?
  • Flutter开发 多孩子布局组件
  • 面向真实场景的定制化图像降质模型设计方案
  • 化工厂安全升级:分布式光纤传感的 “实时监测 + 精准预警” 方案
  • VRTE 的应用程序部署到Ubuntu上 报错:bash: ./rb_exmd: No such file or directory
  • 高效数据隔离方案:SpringBoot + JSqlParser 全解析!
  • [windows]torchsig 1.1.0 gr-spectrumdetect模块安装
  • 第七篇:动画基础:requestAnimationFrame循环
  • Java-反射
  • 【华为机试】63. 不同路径 II
  • 医防融合中心-智慧化慢病全程管理医疗AI系统开发(中)
  • VScode 文件标签栏多行显示
  • python之注册机制总结
  • 什么是ros功能包和ros节点
  • @CacheConfig​​当前类中所有缓存方法详解