防止 Centos 用户安装未签名的 RPM

问题描述

我有一个 CentOS 8 系统,我希望用户能够安装 RPM。我计划在 sudoers 文件中执行以下操作:

username ALL = nopASSWD : /usr/bin/dnf

然而,显然这有安全隐患。我想将 dnf 配置为仅允许使用我的密钥签名的 rpm 安装。因此用户可以使用 dnf 只安装我提供的 RPM。

这可能吗?如果是这样,是否有可以忽略此设置的 dnf 标志(因此会破坏此目的)。我正在查看 dnf 配置,但我不知道我正在阅读的内容是否会实现我想要的。

我的后备方案是创建一个独立程序来执行此操作,并且只允许 sudo 访问该程序,但我不想向系统添加一个应用程序。

感谢您的帮助

解决方法

您可以从系统 (rpm -qa |grep pubkey) 中删除除 GPG 密钥之外的所有密钥,并将 dnf.conf 设置为 true gpgchecklocalpkg_gpgcheck 并将 gpgkey 设置为您的密钥. 这适用于大多数临时用户。

作为奖励,我将为您的用户提供有关如何解决此问题的答案:

  • --nogpgcheck 传递给 dnf
  • 使用 --setopt 禁用上述所有设置
  • 简单的回答是,当 DNF 提示您安装新的 GPG 密钥时