Red Hat Training

A Red Hat training course is available for RHEL 8

23.3. 使非特权用户运行某些命令

作为管理员,您可以通过在 /etc/sudoers.d/ 目录中配置策略来允许非特权用户在特定工作站上输入某些命令。

例如,您可以使用 dnf 命令以及 sudo 特权来允许用户在 <example.user> host.example.com 工作站上安装程序。

先决条件

  • 您必须有系统的 root 访问权限。

流程

  1. root 用户身份,在 /etc/ 下创建一个新的 sudoers.d 目录:

    # mkdir -p /etc/sudoers.d/
  2. /etc/sudoers.d 目录中创建一个新文件:

    # visudo -f /etc/sudoers.d/<example.user>

    文件会自动打开。

  3. /etc/sudoers.d/<example.user> 文件中添加以下行:

    <example.user> <host.example.com> = /usr/bin/dnf

    要在一行中在同一主机上允许两个或多个命令,您可以用逗号分隔来列出这些命令 后跟一个空格。

  4. 可选: 要在用户每次 <example.user> 尝试使用 sudo 权限时收到电子邮件通知,请在文件中添加以下行:

    Defaults    mail_always
    Defaults    mailto="<email@example.com>"
  5. 保存更改,再退出编辑器。

验证

  1. 要验证用户是否 <example.user> 可以使用 sudo 权限运行 dnf 命令,请切换帐户:

    # su <example.user> -
  2. 输入 sudo dnf 命令:

    $ sudo dnf
    [sudo] password for <example.user>:

    输入用户 <example.user>sudo 密码。

  3. 系统显示 dnf 命令和选项列表:

    ...
    usage: dnf [options] COMMAND
    ...

    如果系统返回 <example.user> 不在 sudoers 文件中。将报告此事件 错误信息,您没有 <example.user>/etc/sudoers.d/ 中创建文件。

    如果您收到,<example.user> 不允许在 < host.example.com> 错误消息上运行 sudo,则您尚未正确完成配置。确保您已以 root 身份登录,并且您遵循了这些步骤。

其他资源

  • sudo ( 8)、visudo (8)sudoers (5) 手册页