Skip to content

8. 用户与权限管理

本章节指导在 RHEL 8.10(主机名 ZSLinux)上使用 SecureCRT 进行用户和文件权限管理,配合 SecureFX 传输配置文件。内容涵盖用户管理(添加/修改/删除用户、组管理、sudo 配置)和文件权限管理(设置权限、更改所有者、特殊权限),全面实用,适合初学者快速掌握和运维人员日常维护。所有操作在 ZSLinux 环境中测试,确保实验一致性。

8.1 前提条件

  • RHEL 8.10 已安装(参考第 1 章),主机名设置为 ZSLinux.
  • 使用 SecureCRT 登录(SSH2 协议,端口 2222,参考第 6 章).
  • 使用 SecureFX 传输文件(SFTP 协议).
  • 具有 root 或 sudo 权限.

8.2 用户管理

8.2.1 添加用户

  • 创建用户并设置密码:
    bash
    useradd -m testuser  # 创建用户 testuser 并生成家目录
    passwd testuser  # 设置 testuser 的密码

8.2.2 修改用户

  • 修改用户属性(如添加到组):
    bash
    usermod -aG wheel testuser  # 将 testuser 添加到 wheel 组(sudo 权限)

8.2.3 删除用户

  • 删除用户及其家目录:
    bash
    userdel -r testuser  # 删除 testuser 及其家目录

8.2.4 管理组

  • 创建组并添加用户:
    bash
    groupadd devteam  # 创建 devteam 组
    usermod -aG devteam testuser  # 将 testuser 添加到 devteam 组

8.2.5 配置 sudo 权限

  • 编辑 sudo 配置文件:
    bash
    visudo  # 编辑 /etc/sudoers 文件
    # 添加以下行以授予 testuser sudo 权限:
    testuser ALL=(ALL) ALL

8.3 文件权限管理

8.3.1 设置文件权限

  • 创建测试文件:
    bash
    touch /tmp/testfile.txt  # 创建测试文件
  • 设置权限(使用数字或符号表示法):
    bash
    chmod 644 /tmp/testfile.txt  # 设置文件权限为 rw-r--r--
    chmod u+x /tmp/testfile.txt  # 为文件拥有者添加执行权限

8.3.2 更改文件所有者

  • 更改文件拥有者和组:
    bash
    chown testuser /tmp/testfile.txt  # 将文件拥有者改为 testuser
    chown testuser:devteam /tmp/testfile.txt  # 将文件拥有者和组改为 testuser:devteam

8.3.3 配置特殊权限

  • 设置 setuid(以拥有者权限运行可执行文件):
    bash
    chmod u+s /tmp/testfile.txt  # 为 testfile.txt 设置 setuid
  • 设置 setgid(目录中新建文件继承组):
    bash
    mkdir /tmp/shareddir  # 创建共享目录
    chmod g+s /tmp/shareddir  # 为 shareddir 设置 setgid
  • 设置粘滞位(限制目录中文件删除):
    bash
    chmod o+t /tmp/shareddir  # 为 shareddir 设置粘滞位

8.4 验证

  • 检查用户信息:
    bash
    id testuser  # 查看 testuser 的用户和组信息
    # 应显示 uid、gid 和 groups(包括 wheel、devteam)
  • 验证 sudo 权限:
    bash
    su - testuser  # 切换到 testuser
    sudo dnf update -y  # 测试 sudo 权限
  • 检查文件权限和所有者:
    bash
    ls -l /tmp/testfile.txt  # 查看文件权限和所有者
    # 应显示 -rwxr--r-- testuser devteam
    ls -ld /tmp/shareddir  # 查看目录权限
    # 应显示 drwxr-xr-t(粘滞位)或 drwxr-sr-x(setgid)
  • 验证特殊权限:
    bash
    touch /tmp/shareddir/newfile.txt  # 在共享目录中创建文件
    ls -l /tmp/shareddir/newfile.txt  # 检查新文件的组
    # 新文件应继承 devteam 组
  • 常见问题:
    • 用户无法登录:检查密码是否设置(passwd)或 SSH 配置(参考第 6 章)。
    • sudo 失败:确认用户是否在 wheel 组或 /etc/sudoers 配置正确。
    • 权限设置失败:检查是否具有 root 或 sudo 权限。
    • 特殊权限无效:确认文件或目录是否为可执行文件或正确目录。

8.5 实践任务

  1. 使用 SecureCRT 登录 ZSLinux,创建用户 testuser 并设置密码。
  2. testuser 添加到 wheeldevteam 组,配置 sudo 权限。
  3. 创建 /tmp/testfile.txt,设置权限为 rw-r--r--,并更改拥有者为 testuser:devteam.
  4. /tmp/shareddir 设置 setgid 和粘滞位,验证新文件是否继承 devteam 组。

8.6 自测问题

  • 问题:如何创建用户并设置密码?
    • 答案useradd -m testuser 创建用户,passwd testuser 设置密码。
  • 问题:如何设置文件权限为 rw-r--r-- 并更改所有者?
    • 答案chmod 644 文件名 设置权限,chown testuser:devteam 文件名 更改所有者。
  • 问题:如何为目录设置粘滞位并验证?
    • 答案chmod o+t 目录名,如 chmod o+t /tmp/shareddir,然后检查 ls -ld /tmp/shareddir.

Released under the MIT License.