Menu Close

22.3. 启用非特权用户运行某些命令

您可以配置策略,以允许非特权用户在特定工作站上运行特定的命令。要配置此策略,您需要在 sudoers.d 目录中创建并编辑文件。

先决条件

  • root 访问权限

流程

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

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

    # visudo -f /etc/sudoers.d/file-name

    使用您要创建的文件的名称替换 file-name。该文件将自动打开。

  3. 在新创建的文件中添加以下行:

    username hostname = /path/to/the/command

    使用用户名替换 username。使用主机的名称替换 hostname。使用到命令的绝对路径(例如 /usr/bin/dnf)替换 /path/to/the/command

  4. 保存所有更改并退出编辑器。

    例 22.1. 启用非特权用户使用 dnf 安装程序

    要启用用户 sarah,使用带有 sudo 权限的 dnf 实用程序在 localhost.localdomain 工作站上安装程序,请使用:

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

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

      # visudo -f /etc/sudoers.d/sarah

      该文件将自动打开。

    3. /etc/sudoers.d/sarah 文件中添加以下行:

      sarah localhost.localdomain = /usr/bin/dnf

      确保两个命令的由逗号分隔 , 后面接一个空格。

    4. 可选 :如果需要在用户 sarah 每次尝试使用 sudo 权限时收到相关的电子邮件通知,请在文件中添加以下行:

      Defaults    mail_always
      Defaults    mailto="email@domain.com"
    5. 要验证用户 sarah 是否可以使用 sudo 权限运行 dnf 命令,请切换帐户:

      # su sarah -
    6. 输入 sudo dnf 命令:

      $ sudo dnf
      [sudo] password for sarah:

      输入用户 sarahsudo 密码。

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

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

      如果您收到 sarah is not in the sudoers file.这个事件会被报告。 信息,配置没有被正确完成。确保您以 root 身份执行这个步骤,并遵循以下步骤。