安装OpenVPN客户端执行官方指南第二步添加GPG密钥出现权限拒绝错误
报错原因
sudo仅对管道符左侧的curl命令生效,右侧的重定向写入/etc/apt/trusted.gpg.d/系统目录的操作,仍然以当前普通用户身份执行,普通用户默认没有该目录的写入权限,因此触发权限拒绝报错。
解决方案
以下三种方案任选其一即可:
- 方案1:将整条命令放在sudo调用的shell中执行,让所有操作都获得root权限
sudo bash -c 'curl -fsSL https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | gpg --dearmor > /etc/apt/trusted.gpg.d/openvpn-repo-pkg-keyring.gpg' - 方案2:使用支持root权限写入的
tee命令替代重定向操作
末尾的curl -fsSL https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/openvpn-repo-pkg-keyring.gpg > /dev/null> /dev/null用于屏蔽tee默认的终端输出,不加也不影响文件写入结果。 - 方案3:分步执行,先将处理好的密钥存到当前用户目录,再移动到系统目录
- 下载并处理密钥到本地临时文件
curl -fsSL https://swupdate.openvpn.net/repos/openvpn-repo-pkg-key.pub | gpg --dearmor > openvpn-repo-pkg-keyring.gpg- 用root权限将密钥文件移动到系统信任目录
sudo mv openvpn-repo-pkg-keyring.gpg /etc/apt/trusted.gpg.d/- 可选,清理当前目录下的临时密钥文件
rm openvpn-repo-pkg-keyring.gpg
内容的提问来源于stack exchange,提问作者grafeno30
相关产品推荐
相关产品推荐

