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

Linux 用户与组管理及权限委派

Linux 用户与组管理及权限委派

一、用户与组的基本概念

1. 用户账号分类

Linux 系统中的用户账号分为三类,各自具有不同的权限和用途:

  • 管理员用户(root)
    • UID(用户 ID)固定为 0
    • 拥有系统最高权限,可执行所有操作
  • 普通用户
    • UID 范围为 1000+(CentOS 7 及以上默认从 1000 开始)
    • 仅拥有自身权限范围内的操作权限,用于日常工作
  • 程序用户(系统用户)
    • UID 范围为 1-999
    • 不用于登录系统,仅为系统服务或程序运行提供身份标识(如 nginx、mysql 用户)

2. 组账号分类

组账号用于将多个用户集合管理,便于权限统一分配:

  • 基本组:用户创建时默认所属的组,每个用户至少属于一个基本组
  • 附加组:用户除基本组外额外加入的组,一个用户可属于多个附加组
  • GID(组 ID)规则
    • 管理员组(root 组)的 GID 固定为 0
    • 普通组的 GID 范围为 1000-60000

二、用户与组的配置文件

1. 用户核心配置文件

文件名

作用

访问权限

/etc/passwd

存储所有用户的基本信息

所有用户可读取

/etc/shadow

存储用户密码及安全策略

仅 root 可读取

/etc/group

存储所有组的基本信息

所有用户可读取

/etc/gshadow

存储组密码及管理员信息

仅 root 可读取

2. 配置文件格式详解

(1)/etc/passwd 格式

每行代表一个用户,以冒号分隔 7 个字段:

用户名:密码占位符:UID:GID:用户描述:主目录:登录Shell
  • 示例:zhangsan:x:1001:1001:张三:/home/zhangsan:/bin/bash
  • 说明:x 表示密码存储在 /etc/shadow 中;/bin/bash 为可登录 Shell,/sbin/nologin 为禁止登录
(2)/etc/shadow 格式

每行对应 /etc/passwd 中的用户,以冒号分隔 9 个字段(密码安全相关):

用户名:加密密码:最近改密日期:密码不可改天数:密码有效期:警告天数:宽限天数:账号失效日期:保留字段
  • 关键字段说明:
    • 加密密码:采用 SHA-512 算法加密;* 或 !! 表示用户被锁定,无法登录;为空表示无需密码即可登录
    • 最近改密日期:从 1970-01-01 到最近修改密码的天数
    • 密码有效期:默认 99999(约 273 年),表示无强制过期
    • 账号失效日期:格式同 “最近改密日期”,为空表示永久有效
(3)/etc/group 格式

每行代表一个组,以冒号分隔 4 个字段:

组名:密码占位符:GID:组内用户列表(附加组用户)
  • 示例:dev:x:1005:zhangsan,lisi(dev 组的 GID 为 1005,附加用户为 zhangsan 和 lisi)
(4)/etc/gshadow 格式

每行对应 /etc/group 中的组,以冒号分隔 4 个字段:

组名:加密组密码:组管理员:组成员
  • 说明:组密码通常为空或 !(表示无密码);组管理员可管理组内成员

3. 用户相关目录

目录路径

作用

/home/<用户名>

普通用户的主目录,存储个人文件

/var/spool/mail/<用户名>

用户的系统邮箱,接收系统通知

三、用户与组的管理命令

1. 用户管理命令

(1)useradd:创建用户
useradd [选项] 用户名
  • 常用选项:
    • -u <UID>:指定 UID(需未被使用)
    • -d <目录>:指定主目录(默认 /home/用户名)
    • -g <组名/GID>:指定基本组
    • -G <组名/GID>:指定附加组(多个组用逗号分隔)
    • -s <Shell>:指定登录 Shell(如 /bin/bash、/sbin/nologin)
    • -c <描述>:添加用户描述信息
  • 示例:创建一个 UID 为 1008、基本组为 dev、附加组为 admin 的用户 wangwu
useradd -u 1008 -g dev -G admin -c "王五" wangwu
(2)passwd:设置用户密码
passwd [选项] 用户名 # root 可指定用户,普通用户只能修改自身密码
  • 常用选项:
    • -d:清空密码(用户可无密码登录)
    • -l:锁定用户账号(无法登录)
    • -u:解锁用户账号
    • -S:查看用户账号状态(是否锁定、密码过期信息等)
  • 示例:锁定用户 wangwu 并查看状态
passwd -l wangwupasswd -S wangwu
(3)usermod:修改用户属性
usermod [选项] 用户名
  • 常用选项(同 useradd,新增锁定相关):
    • -L:锁定用户(同 passwd -l)
    • -U:解锁用户(同 passwd -u)
  • 示例:将用户 wangwu 的主目录改为 /home/wangwu_new,并添加附加组 test
usermod -d /home/wangwu_new -aG test wangwu # -a 表示追加附加组,避免覆盖原有组
(4)userdel:删除用户
userdel [选项] 用户名
  • 常用选项:
    • -r:彻底删除用户(包括主目录 /home/用户名 和邮箱 /var/spool/mail/用户名)
  • 示例:彻底删除用户 wangwu
userdel -r wangwu

2. 组管理命令

(1)groupadd:创建组
groupadd [选项] 组名
  • 常用选项:-g <GID> 指定组的 GID(需未被使用)
  • 示例:创建 GID 为 1006 的组 test
groupadd -g 1006 test
(2)groupdel:删除组
groupdel 组名 # 需确保组不是任何用户的基本组,否则删除失败
(3)gpasswd:管理组成员及密码
gpasswd [选项] 组名
  • 常用选项:
    • -a <用户>:添加用户到组(附加组)
    • -d <用户>:从组中移除用户
    • 直接执行 gpasswd 组名:设置组密码(不推荐,通常不用组密码)
  • 示例:将用户 zhangsan 添加到 dev 组,再移除
gpasswd -a zhangsan devgpasswd -d zhangsan dev
(4)groups:查看用户所属组
groups [用户名] # 不指定用户则查看当前用户所属组
  • 示例:查看 zhangsan 所属的组
groups zhangsan

3. 密码策略管理(chage)

用于修改 /etc/shadow 中的密码过期相关设置:

chage [选项] 用户名# 直接执行 chage 用户名:进入交互式设置
  • 常用选项:
    • -M <天数>:设置密码最长有效期
    • -m <天数>:设置密码最短修改间隔
    • -E <日期>:设置账号失效日期(格式 YYYY-MM-DD)
  • 示例:设置 zhangsan 的密码 90 天过期,过期前 10 天警告
chage -M 90 -W 10 zhangsan

四、权限委派(sudo)

sudo 允许普通用户以 root 或其他用户身份执行特定命令,实现权限精细化管理。

1. 配置文件

  • 主配置文件:/etc/sudoers(需通过 visudo 编辑,自动语法检查)
  • 子配置目录:/etc/sudoers.d/(推荐在此目录创建文件,无需修改主配置)

2. 配置格式

基本格式:

用户/组 主机=(身份) 可执行命令列表
  • 示例:允许 admin 用户在所有主机以 root 身份执行用户管理命令
admin ALL=(root) /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel

3. 配置步骤

(1)通过 /etc/sudoers.d/ 配置(推荐)
visudo -f /etc/sudoers.d/user-admin # 创建并编辑配置文件

添加内容:

admin ALL=(ALL) /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdel

保存退出(visudo 会自动验证语法)。

(2)使用命令别名(简化配置)

在 sudoers 中定义命令别名,便于批量管理:

visudo # 编辑主配置文件

添加内容:

Cmnd_Alias USER_MANAGE = /usr/sbin/useradd, /usr/sbin/usermod, /usr/sbin/userdeladmin ALL=(ALL) USER_MANAGE

4. 使用方法

普通用户执行授权命令时,需在命令前加 sudo:

sudo useradd tom # admin 用户创建 tom 用户

首次执行会要求输入当前用户的密码(验证身份)。

总结

  • 用户与组:通过 UID/GID 区分身份,核心配置文件集中在 /etc 目录,管理命令包括 useradd、groupadd 等。
  • 权限委派:通过 sudo 实现普通用户对特定命令的临时授权,配置灵活且安全,推荐使用 /etc/sudoers.d/ 目录管理子配置。

掌握用户与组的管理,是 Linux 系统权限控制和安全运维的基础。

http://www.dtcms.com/a/310440.html

相关文章:

  • 自由学习记录(75)
  • [2025CVPR-图象处理方向]Z-Magic:零样本多属性引导图像创建器
  • SpringBoot与Rust实战指南
  • 深度SEO优化的方式有哪些,从技术层面来说
  • GitHub 趋势日报 (2025年07月31日)
  • 【实战】Dify从0到100进阶--插件开发(1)Github爬取插件
  • ansible.cfg 配置文件生成
  • [css]切角
  • 第十四天:C++内存管理
  • Agents-SDK智能体开发[2]之工具调用
  • Nginx 来正确地托管网站服务
  • 《软件测试与质量控制》实验报告一 测试用例设计
  • 自动化框架pytest
  • 小学阶段的学习机推荐:科大讯飞T30、Lumie 10学习机暑期16项AI功能升级
  • 2025电赛G题-发挥部分-参数自适应FIR滤波器
  • python列表推导式
  • uniapp基础 (二)
  • 电商作图,商品图、模特图、促销海报设计
  • Unity优化技巧:自动隐藏视野外的3D模型
  • 【人工智能-16】机器学习:概念、工具介绍、数据集、特征工程
  • 铁皮矫平机进阶小百科
  • C# _Json数据
  • MySQL 45 讲 18-20
  • React 19 革命性升级:编译器自动优化,告别手动性能调优时代
  • 携程PMO资深经理、携程技术委员会人工智能委员会秘书陈强受邀为PMO大会主持人
  • 开源vGPU解决方案HAMi
  • 2025.8.1
  • python中appium 的NoSuchElementException错误 原因以及解决办法
  • C++基础语法
  • Redis实战(5)-- 高级数据结构 HyperLogLog