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

10.Linux 用户和组的管理

Linux : 用户和组的管理

一、用户类型

  1. 超级用户
    • root用户(UID=0),拥有系统最高权限
    • 安全建议:日常操作使用普通用户,仅在系统管理时切root
  2. 普通用户
    • 由管理员创建(UID≥1000),权限受限
    • 家目录(/home/用户名)拥有完整权限
  3. 程序用户
    • 系统服务专用(UID范围1-999),无登录权限
    • 示例:www-data(Web服务)、mysql(数据库)

二、组管理

  • 基本组:用户创建文件时默认所属组
  • 附加组:为用户额外授权的组(如赋予sudo权限)
  • 组ID(GID)
    • root组 GID=0
    • 系统组 GID=1-999
    • 普通组 GID≥1000

三、核心配置文件

文件路径作用关键字段说明
/etc/passwd用户基本信息用户名:x:UID:GID:描述:家目录:登录Shell
/etc/shadow用户密码及策略(仅root可读)账号:加密密码:最后修改日:最小天数:最大天数:警告期:宽限日:失效日:保留
/etc/group组信息组名:x:GID:组成员列表
/etc/gshadow组密码及管理信息组名:加密密码:组管理员:组成员

重要安全机制:密码从passwd移至shadow,避免暴力破解(passwd中用x占位)


四、密码(chage命令)

# 设置用户密码策略
sudo chage -m 7 -M 90 -W 7 -E 2025-12-31 username# 常用选项:
#   -m:密码最小修改间隔(天)
#   -M:密码有效期(天)
#   -W:密码过期前警告天数
#   -E:账号绝对失效日期(YYYY-MM-DD)
#   -I:密码过期后禁用账号前的宽限天数

五、用户管理命令

1. 创建用户
sudo useradd -m -d /home/misa -s /bin/bash -g dev -G sudo,sales misa
  • -m:创建家目录
  • -g:指定基本组
  • -G:指定附加组(逗号分隔)
2. 修改用户属性
sudo usermod -L misa       # 锁定账号
sudo usermod -U misa        # 解锁账号
sudo usermod -aG newgroup misa  # 添加附加组(保留原组)
3. 删除用户
sudo userdel -r misa  # 删除用户及家目录、邮件
4. 密码管理
sudo passwd misa       # 设置密码
sudo passwd -d misa    # 清空密码(无密码登录)
sudo passwd -S misa    # 查看密码状态

六、组管理命令

sudo groupadd    # 创建组
sudo groupdel    # 删除组(需先移除组成员)
sudo gpasswd -a misa     # 添加用户到组
sudo gpasswd -d misa    # 从组移除用户
groups misa                 # 查看用户所属组

七、权限委派(sudo)

配置文件:/etc/sudoers

# 步骤:
1. 定义命令别名(安全建议):Cmnd_Alias kami = /usr/sbin/useradd, /usr/sbin/userdel2. 授权用户(组):misa   ALL=(ALL)  kami # kami可执行指定命令# 验证:
sudo -l -U misa  # 查看misa的sudo权限
  • 优先授权命令而非ALL权限
  • 生产环境慎用NOPASSWD

关键补充与建议

  1. UID/GID范围

    • 系统用户/组:0-999
    • 普通用户/组:1000-60000(系统默认上限可调整)
  2. 密码安全

    • Shadow加密:SHA-512(现代系统)
    • 禁用登录:密码字段设为*!!/etc/shadow
  3. 用户默认配置

    • 模板文件:/etc/skel/(新建用户时自动复制到家目录)
    • 默认设置:/etc/default/useradd
  4. 查看用户信息工具

    id misa          # 查看UID/GID及所属组
    lastlog          # 所有用户最近登录记录
    
  5. 特殊Shell

    • /sbin/nologin:禁止登录(程序用户专用)
http://www.dtcms.com/a/310121.html

相关文章:

  • 【HL7】.aECG与.hl7文件的关系和区别
  • Java滤波去除异常峰值方法(二)
  • CGA匹兹堡睡眠质量指数量表评估睡眠状况​
  • nCode 疲劳分析场景复杂,企业如何科学合理分配授权资源?
  • Shader开发(六)什么是着色器
  • Go语言常用的设计模式
  • leetcode热题——全排列
  • 视频质量检测中卡顿识别准确率↑32%:陌讯多模态评估框架实战解析
  • 音频获取长度
  • anaconda、conda、pip、pytorch、torch、tensorflow到底是什么?它们之间有何联系与区别?
  • 目标检测检出率,误检率,ap,map等评估python代码
  • SOLIDWORKS教育版
  • 地震光与鸟类异常行为的科学关联性及地震预测潜力评估
  • (AC)五子棋
  • 在 uni-app 中进行路由跳转前的权限验证(检查用户是否登录)
  • OCC任务新SOTA!华科提出SDGOCC:语义深度双引导的3D占用预测框架(CVPR 2025)
  • 基于Pipeline架构的光存储读取程序 Qt版本
  • ansible简单playbook剧本例子3-安装nginx
  • Typora v1.10.8 好用的 Markdown 编辑器
  • 【2】专业自定义图表创建及应用方法
  • flutter release调试插件
  • 通过pendingIntent启动activity被block问题
  • C语言数据结构(3)单链表专题1.单链表概述
  • NDBmysql-cluster融合脚本
  • (二)LoRA微调BERT:为何在单分类任务中表现优异,而在多分类任务中效果不佳?
  • Spring Boot微服务性能优化实践指南:从配置到监控
  • SpringCloud(一)微服务基础认识
  • 什么是三防平板电脑?三防平板有什么作用?
  • 浏览器【详解】自定义事件 CustomEvent
  • AUTOSAR进阶图解==>AUTOSAR_SRS_FlashTest