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

【Linux】用户与组管理

文章目录

        • 一、用户与组的意义
        • 二、用户体系解析
        • 三、组管理体系
        • 四、权限控制模型
        • 五、管理工具详解
        • 六、权限提升机制
        • 七、应用场景示例

一、用户与组的意义

Linux作为经典的多用户操作系统,其用户与组机制实现了三大核心功能:

  • 资源隔离:不同用户拥有独立的工作空间(如/home目录),避免数据混乱
  • 权限管控:通过权限分配控制文件/设备的访问,如禁止普通用户修改系统配置
  • 安全审计:所有操作均可追溯至具体用户,为系统安全提供保障
二、用户体系解析
  1. 用户标识

    • UID(用户ID):系统识别的数字标识,root用户固定为0
    • 分类:
      • 系统用户(UID 1-999):运行服务进程,如www-data用户运行Web服务
      • 普通用户(UID ≥1000):通过useradd创建的实际使用者
  2. 用户配置文件

    • /etc/passwd存储用户基本信息:
      username:x:UID:GID:描述:/home/dir:/bin/bash
      
    • /etc/shadow加密存储密码及有效期策略
三、组管理体系
  1. 组标识

    • GID(组ID):逻辑用户集合标识,root组为0
    • 类型:
      • 主组(Primary Group):用户创建文件时的默认所属组
      • 附加组(Supplementary Group):用于扩展权限的辅助组
  2. 组配置文件

    • /etc/group记录组信息:
      groupname:x:GID:成员列表
      
四、权限控制模型
  1. 三位一体权限

    扩展阅读:深入理解 Linux 文件权限

    -rwxr-xr-- 1 alice dev 4096 Jan 1 10:00 file.txt
    
    • 所有者(alice):读写执行(rwx)
    • 所属组(dev):读执行(r-x)
    • 其他用户:只读(r–)
  2. 关键命令

    • chmod 755 file:设置权限为rwxr-xr-x
    • chown user:group file:修改所有者和所属组
五、管理工具详解
命令功能说明常用参数示例
useradd创建用户-m创建家目录,-G指定附加组
usermod修改用户属性-aG追加附加组
passwd设置/修改密码-l锁定账户
groupadd创建组-g指定GID
id查看用户身份信息username查询指定用户
六、权限提升机制
  1. su:切换用户身份

    su - username  # 完全环境切换
    
  2. sudo:临时提权执行

    • 配置路径:/etc/sudoers
    • 典型授权:
      %admin ALL=(ALL) NOPASSWD: /usr/bin/apt
      
七、应用场景示例
  1. 团队协作开发

    • 创建公共组devteam
    sudo groupadd devteam
    sudo usermod -aG devteam alice
    sudo usermod -aG devteam bob
    
    • 设置共享目录:
    chmod 2770 /project  # SGID保持组权限
    chown :devteam /project
    
  2. 服务账户管理

    • 创建无登录权限的系统账户:
    sudo useradd -r -s /usr/sbin/nologin mysql
    

通过合理配置用户与组,管理员可以构建灵活安全的权限体系,既满足多用户协作需求,又能有效防范越权访问风险。建议通过man useradd等手册命令深入学习各工具的高级用法。

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

相关文章:

  • Fastjson 从多层级的JSON数据中获取特定字段的值
  • Transformer中的三种注意力机制
  • 开源模型应用落地-qwen模型小试-Qwen3-8B-推理加速-vLLM-结构化输出(三)
  • Copilot for PPT 可直接用模板创建品牌演示文稿
  • 【Python-Day 10】Python 循环控制流:while 循环详解与 for 循环对比
  • 文件上传/读取/包含漏洞技术说明
  • MySQL中有哪几种锁?
  • 【“星瑞” O6 评测】 — 车辆速度估计
  • 【区块链】Uniswap之滑点(Slippage)
  • Java 检查某个点是否存在于圆扇区内(Check whether a point exists in circle sector or not)
  • springBoot中自定义一个validation注解,实现指定枚举值校验
  • LINUX——例行性工作
  • 私有仓库 Harbor、GitLab
  • K8S使用--dry-run输出资源模版和兼容性测试
  • Django缓存框架API
  • 物理服务器紧急救援:CentOS系统密码重置全流程实战指南
  • 如何添加或删除极狐GitLab 项目成员?
  • JPress安装(Docker)
  • 如何在使用 docker-compose 命令时指定 COMPOSE_PROJECT_NAME ?
  • 概统期末复习--速成
  • 区块链交易所开发:开启数字交易新时代
  • TypeScript简介
  • LeetCode 热题 100 198. 打家劫舍
  • 【机器学习-线性回归-6】机器学习中的维度:从特征工程到降维艺术
  • Missashe考研日记-day33
  • 数字政府大模型应用方案
  • MySQL 8.4.5 源码编译安装指南
  • 国联股份卫多多与国术科技签署战略合作协议
  • 使用OpenCV 和Dlib 实现表情识别
  • AI量化解析:从暴跌5%到飙涨3%—非线性动力学模型重构黄金极端波动预测框架