问题描述
我有一个 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 gpgcheck
、localpkg_gpgcheck
并将 gpgkey
设置为您的密钥.
这适用于大多数临时用户。
作为奖励,我将为您的用户提供有关如何解决此问题的答案:
- 将
--nogpgcheck
传递给 dnf - 使用
--setopt
禁用上述所有设置 - 简单的回答是,当 DNF 提示您安装新的 GPG 密钥时