欢迎光临
我们一直在努力

Linux 用户、组与权限、提权完整保姆教程

Linux 用户、组与权限、提权完整保姆教程(新手友好)

> 前置基础:Linux 基础命令、/etc/passwd 基础认知

目录

  • 本地用户实操综合案例

  • 手动创建用户 + 家目录各类故障修复

  • 用户组全套命令:groupadd/groupmod/groupdel/groupmems

  • 用户密码管理 /etc/shadow 详解 + chage 密码时效控制

  • 用户锁定、禁用、UID0 高危账号讲解

  • 系统支持的 Shell 类型

  • 用户切换工具 su 完整用法区分

  • 安全提权工具 sudo 配置与实战

  • Linux 文件基础权限入门

  • 全文核心总结


  • 一、本地用户实操综合案例

    operator1 用户完整实操流程

    # ========== 1、创建普通用户operator1 ==========
    # useradd 默认行为:自动生成同名主组、自动创建/home/operator1家目录、默认shell /bin/bash
    useradd operator1
    # ========== 2、id查看用户完整身份信息 ==========
    # id 输出uid(用户ID)、gid(主组ID)、所有附属组列表
    id operator1
    # ========== 3、过滤查看/etc/passwd中operator条目 ==========
    # ^operator1: 精准匹配行首,防止匹配包含operator1的无关字符串
    grep "^operator1:" /etc/passwd
    # ========== 4、设置用户密码redhat ==========
    # 方式1:交互式输入密码(手工操作推荐,输入密码屏幕不回显)
    passwd operator1
    # 方式2:非交互管道设置,脚本批量自动化使用(仅RHEL/CentOS支持–stdin)
    echo red | passwd –stdin operator1
    # ========== 5、修改用户UID为1088 ==========
    # -u 指定新UID编号,UID全局唯一
    usermod -u 1088 operator1
    # 修改UID后,家目录内文件属主不会自动同步,必须递归修复权限,否则文件无法读写
    chown -R operator1:operator1 /home/operator1
    # 再次校验UID是否修改成功
    id operator1
    # ========== 6、修改用户备注描述信息 ==========
    # -c 修改passwd第五段GECOS注释字段,用于标注用户身份
    usermod -c "Operator One" operator1
    # 查看修改后的passwd条目
    grep "^operator1:" /etc/passwd
    # ========== 7、追加wheel管理员附属组 ==========
    # -a 代表append追加;大写G代表附属组;不加-a会清空原有全部附加组
    usermod -aG wheel operator1
    # 验证附属组是否新增wheel
    id operator1
    # ========== 8、查看/etc/group中wheel组内容 ==========
    # wheel组是CentOS管理员特权组,组末尾逗号分隔所有附属用户
    grep "^wheel:" /etc/group
    # ========== 9、彻底删除用户 ==========
    # -r 参数:同步删除用户家目录 /home/operator1 和对应系统邮件文件
    userdel -r operator1


    二、底层原理:手动创建用户(不使用 useradd)

    useradd 会自动修改系统配置、创建家目录;手动修改能理解用户存储底层逻辑

    # ========== 1、手动编辑/etc/passwd添加用户基础信息 ==========
    vim /etc/passwd
    # 文件末尾新增一行,7段用冒号分隔,UID/GID选用未占用数字
    zhangsan:x:1002:1002::/home/zhangsan:/bin/bash
    # ========== 2、手动编辑/etc/group创建同名主组 ==========
    vim /etc/group
    # 组格式:组名:密码占位:GID:附属用户(空代表无附属成员)
    zhangsan:x:1002:
    # ========== 3、手动编辑/etc/shadow写入加密密码 ==========
    vim /etc/shadow
    # 第二段为加密密码串,密码明文为redhat
    zhangsan:$6$FgUNKn74yoEDbcXD$pxDk9AEhsxkJGYi76Rv91zLy5LRns8olgAyGuNssQYG07ypaidhuX0gHAU4hrNi9Zp9A7vtMEvbyzCQ0e/gbk::0:99999:7:::
    # ========== 4、复制系统骨架文件到家目录 ==========
    # /etc/skel存放用户初始配置模板(.bashrc .bash_profile等环境文件)
    cp -r /etc/skel/ /home/zhangsan
    # ========== 5、修改家目录归属用户与组 ==========
    chown zhangsan:zhangsan /home/zhangsan
    # ========== 6、查看家目录权限验证 ==========
    ll -d /home/zhangsan
    # ========== 7、ssh本地登录测试账号 ==========
    ssh zhangsan@localhost

    用户家目录三大常见故障与修复

    故障 1:登录提示符变为 -bash-4.2$

    故障原因:全局 shell 配置文件 /etc/bashrc 丢失,无法加载提示符样式

    # 模拟故障:备份改名原文件
    mv /etc/bashrc{,.ori}
    # 新开终端复现异常提示符
    bash
    # 恢复原配置文件
    mv /etc/bashrc{.ori,}
    # 重新打开终端生效
    bash

    故障 2:登录提示 No such file or directory 找不到家目录

    # 模拟故障:彻底删除用户家目录
    rm -fr /home/zhangsan
    # 修复步骤1:重新复制系统骨架模板
    cp -r /etc/skel/ /home/zhangsan
    # 修复步骤2:递归修改目录归属
    chown zhangsan:zhangsan /home/zhangsan

    故障 3:家目录权限不足 Permission denied

    # 模拟故障:移除用户所有读写执行权限
    chmod u=– /home/zhangsan
    # 修复1:递归修改目录与内部文件属主
    chown -R zhangsan:zhangsan /home/zhangsan
    # 修复2:给目录所有者赋予完整读写执行权限
    chmod u=rwx /home/zhangsan
    # 校验目录权限
    ll -d /home/zhangsan


    三、本地用户组全套管理命令

    1 groupadd 创建用户组

    # 创建普通组admin,系统自动分配未占用GID
    groupadd admin
    # -g 指定自定义GID=2000,创建sysadmin组
    groupadd sysadmin -g 2000
    # 过滤查看/etc/group内admin相关组信息
    grep admin /etc/group

    2 groupmod 修改组属性

    # –new-name 修改组名,将admin重命名为admins
    groupmod –new-name admins admin
    # -g 修改组ID为2002
    groupmod -g 2002 admins
    # 校验修改后的组信息
    grep 'admins' /etc/group

    3 groupdel 删除用户组

    # 删除sysadmin组;注意:该组不能是任何用户的主组,否则删除失败
    groupdel sysadmin
    # 验证是否删除成功,无输出代表已删除
    grep sysadmin /etc/group

    4 groupmems 专门管理组附属成员

    # 查看groupmems全部参数说明
    groupmems –help
    # -g 指定目标组admins,-a 添加XXX到该组附属成员
    groupmems -g admins -a XXX
    # -l 列出目标组内所有附属用户
    groupmems -g admins -l
    # -d 从组中删除指定用户XXX
    groupmems -g admins -d XXX
    # -p 一键清空组内所有附属成员
    groupmems -g admins -p


    四、用户密码管理 /etc/shadow 与 chage

    4.1 /etc/shadow 九段字段详解

    # 过滤XXX用户的shadow完整条目
    grep XXX /etc/shadow
    # 示例输出:XXX:$6$m0OgWyIu$P2TF1pB8MO…J3LopEUdhmp/Ir/:19300:0:99999:7:::
    # 字段拆分:
    # 1 用户名
    # 2 加密密码串 $6代表sha512加密算法
    # 3 上次改密码距离1970-01-1总天数;0=登录强制改密码
    # 4 最小修改间隔天数,0代表随时可改密码
    # 5 密码最大有效天数
    # 6 过期前提前告警天数
    # 7 密码过期宽限天数
    # 8 账号整体过期天数
    # 9 预留空字段

    4.2 chage 管控密码生命周期

    # -l 列出用户完整密码时效配置
    chage -l XXX
    # -M 设置密码最大有效期100天
    chage -M 100 XXX
    # -m 设置两次改密码最少间隔10天
    chage -m 10 XXX
    # -d 0 下次登录强制修改密码
    chage -d 0 XXX
    # -E 指定账号整体过期日期,格式 YYYY-MM-DD
    chage -E 2026-12-31 XXX

    4.3 用户锁定、禁用、密码操作

    # ========== 锁定用户密码 ==========
    # -L 锁定shadow密码字段,无法登录
    usermod -L laowang
    # -U 解锁密码
    usermod -U laowang
    # ========== 修改登录shell禁止登录 ==========
    # /sbin/nologin 无登录权限,多用于服务账号
    usermod -s /sbin/nologin laowang
    # 恢复登录bash
    usermod -s /bin/bash laowang
    # ========== 清空用户密码,免密登录 ==========
    passwd -d laowang
    # ========== 复制他人加密密码给当前用户 ==========
    # 提取laowang的加密密码字符串
    grep laowang /etc/shadow
    # -p 直接填入加密串,同步密码
    usermod -p '$6$dQcDSqtz$Nboi6QLMzscWSLvnnRO86gm3XI/qbgfnK5zVv2Ix13EktQ97vwNsqQlrfI2K/b1mVnHNgzmMNIb0P4HnTugog/' XXX
    # -p 后为空字符串,清空密码
    usermod -p '' XXX

    4.4 高危:UID=0 特权账号

    UID=0 拥有系统全部最高权限,生产严禁使用

    # 方式1:手动修改/etc/passwd中UID为0
    vim /etc/passwd
    XXX:x:0:1000:XXX:/home/XXX:/bin/bash
    # 方式2:useradd -o 允许重复UID创建账号
    # -o 取消UID唯一性校验
    useradd -o -u 0 XXX
    # 验证UID为0,等同于root权限
    id XXX

    4.5 系统可用 Shell 查看安装

    # 查看系统所有合法登录shell列表
    cat /etc/shells
    # 查看sh软链接指向bash
    ll /bin/sh /usr/bin/sh
    # 安装tcsh、tmux扩展shell工具
    yum install -y tcsh tmux
    # 查看csh软链接
    ll /bin/csh /usr/bin/csh


    五、su 用户切换命令详解

    两种切换模式区别

    # ========== 模式1:su 用户名 非登录shell ==========
    # 仅切换身份,保留当前用户所有环境变量
    su
    # 输入root密码切换
    # ========== 模式2:su – / su -l 完整登录shell(推荐) ==========
    # 完整加载目标用户家目录、环境变量,环境纯净
    su -l
    # 简写等价写法
    su
    # ========== 单次以指定用户执行命令 ==========
    # -c 后面命令整体用单引号包裹,防止变量提前解析
    su -l laowang -c 'cat /etc/hosts'
    # ========== nologin账号强制指定bash登录 ==========
    # 账号默认shell为nologin,-s临时指定bash
    su -l adm -s /bin/bash
    # nologin账号提示符异常修复
    # 复制skel模板到adm家目录
    cp /etc/skel/{.bash_profile,.bashrc} /var/adm
    # 重新登录
    su adm -l -s /bin/bash


    六、sudo 安全提权完整配置

    su 缺陷

    需要 root 密码、无操作审计日志、无法精细化分配权限

    sudo 优势

    输入自身密码、操作记录存入 /var/log/secure、可限制可执行命令

    # 普通用户临时以root执行id命令
    sudo id
    # ========== 配置sudo权限 visudo ==========
    # 指定默认编辑器为vim
    export EDITOR=vim
    # 专用编辑工具,自动校验语法,禁止vim直接改/etc/sudoers
    visudo
    # visudo内置默认规则说明
    # root 拥有全部管理员权限
    root ALL=(ALL) ALL
    # %代表组,wheel组所有用户拥有全部权限
    %wheel ALL=(ALL)
    # 案例1:laowang拥有全部sudo权限
    laowang ALL=(ALL) ALL
    # 案例2:laowang免密执行所有管理员命令
    laowang ALL=(ALL) NOPASSWD:ALL
    # 案例3:最小权限,仅允许用户管理命令
    laowang ALL=(ALL) /sbin/useradd,/sbin/usermod,/sbin/userdel
    # ========== 分片配置文件(推荐,不修改主文件) ==========
    # 单独创建laowang权限配置文件
    echo 'laowang ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers.d/laowang
    # 查看分片配置内容
    cat /etc/sudoers.d/laowang
    # ========== 高危提权漏洞演示 ==========
    # 创建测试用户
    useradd xiaoniuma
    # 设置密码
    echo 123 | passwd –stdin xiaoniuma
    # 仅授予sudo vim权限
    echo 'xiaoniuma ALL=(ALL) /bin/vim' > /etc/sudoers.d/xiaoniuma
    # 用户执行sudo vim /etc/passwd 可修改任意账号UID=0,获取最高权限
    # 还原环境
    userdel -r xiaoniuma
    rm -f /etc/sudoers.d/xiaoniuma

    sudo 使用规范总结

  • 日常运维优先sudo,避免长期su -停留在 root 权限

  • 遵循最小权限原则,不随便授予 ALL 全部权限

  • 新增权限写入/etc/sudoers.d/分片文件,不修改主文件

  • 定期查看/var/log/secure审计管理员操作日志


  • 七、Linux 文件基础权限入门

    # 查看文件完整权限、属主、属组
    ls -l myfile
    # 输出示例:-rw-r—–. 1 XXX wheel 2262 Dec 23 08:47
    # 分段拆解
    # 第1字符:文件类型 -普通文件 d目录 l软链接
    # 2-4位 u(所有者)权限 r读 w写 x执行
    # 5-7位 g(同组用户)权限
    # 8-10位 o(其他所有人)权限
    # 权限字母含义
    # r = read 可读
    # w = write 写入、删除
    # x = execute 可执行文件 / 进入目录
    # 示例 -rw-r–r– 解读
    # 文件所有者:可读可写,无执行权限
    # 同组用户:仅可读
    # 其他用户:仅可读


    八、全文核心总结

  • 用户标准化操作:useradd/usermod/userdel,禁止手动修改 passwd

  • 组管理命令:groupadd/groupmod/groupdel/groupmems

  • 加密密码、账号时效存储在/etc/shadow,chage控制密码过期规则

  • 家目录故障通用修复方案:复制/etc/skel模板 + 修正文件归属

  • 切换用户优先 su – 完整登录模式,环境变量完整规范

  • 生产环境统一使用sudo精细化提权,禁止共享 root 密码

  • UID=0、sudo 授予 vim 属于高危安全漏洞,线上环境禁止配置

  • 文件权限分为所有者、同组、其他三类,r/w/x 分别控制读写执行

  • (注:部分内容可能由 AI 生成)

    赞(0)
    未经允许不得转载:171主机测评 » Linux 用户、组与权限、提权完整保姆教程
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址