通过运行以下 wget | 添加用于对包进行签名的 gpg 密钥GPG | tee >/dev/null 命令

通过运行以下 wget | 添加用于对包进行签名的 gpg 密钥GPG | tee >/dev/null 命令

我正在准备我的 Kali Linux 来运行 Tor 的中间中继。我正在按照 Tor 项目的存储库配置这个网站

我执行了步骤 1 和 2。第三步是通过运行以下命令添加用于签署软件包的 gpg 密钥:

sudo wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

问题是我不明白这个命令的作用以及它为什么失败,即使我以sudo权限执行它。

┌──(michal㉿kali)-[/usr/share/keyrings]
└─$ sudo wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null
[sudo] password for michal: tee: /usr/share/keyrings/tor-archive-keyring.gpg: Permission denied

这部分wget,我明白了。但我不知道 Tor 存储库下载到我的 vps 后会发生什么。

┌──(michal㉿kali)-[/usr/share/keyrings]
└─$ ls -lah
total 176K
drwxr-xr-x   2 root root 4.0K Jan 28  2022 .
drwxr-xr-x 135 root root 4.0K Jan  3 18:09 ..
-rw-r--r--   1 root root 8.5K Feb 25  2021 debian-archive-bullseye-automatic.gpg
-rw-r--r--   1 root root 8.6K Feb 25  2021 debian-archive-bullseye-security-automatic.gpg
-rw-r--r--   1 root root 2.4K Feb 25  2021 debian-archive-bullseye-stable.gpg
-rw-r--r--   1 root root 8.0K Feb 25  2021 debian-archive-buster-automatic.gpg
-rw-r--r--   1 root root 8.0K Feb 25  2021 debian-archive-buster-security-automatic.gpg
-rw-r--r--   1 root root 2.3K Feb 25  2021 debian-archive-buster-stable.gpg
-rw-r--r--   1 root root  55K Feb 25  2021 debian-archive-keyring.gpg
-rw-r--r--   1 root root  37K Feb 25  2021 debian-archive-removed-keys.gpg
-rw-r--r--   1 root root 7.3K Feb 25  2021 debian-archive-stretch-automatic.gpg
-rw-r--r--   1 root root 7.3K Feb 25  2021 debian-archive-stretch-security-automatic.gpg
-rw-r--r--   1 root root 2.3K Feb 25  2021 debian-archive-stretch-stable.gpg
-rw-r--r--   1 root root 2.3K Jan 25  2022 kali-archive-keyring.gpg
┌──(michal㉿kali)-[/usr/share/keyrings]
└─$ lsb_release -a                                                                                                                                         1 ⨯
No LSB modules are available.
Distributor ID: Kali
Description:    Kali GNU/Linux Rolling
Release:        2022.4
Codename:       kali-rolling

答案1

首先,让我们来分析一下发生了什么。 sudo仅用于运行wget,而不用于命令的其余部分。您所做的在功能上等同于:

# 1. Download a file and save as 'file.asc'
sudo wget -qO- https://d...E886DDD89.asc > file.asc

# 2. Dearmor that file (generates file.asc.gpg)
gpg --dearmor file.asc

# 3. Copy that file to /usr/share/keyrings
tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null <file.asc.gpg 

所以你看,你曾经sudo下载过这个文件。在这种情况下,除了 make file.ascowned by之外,这并没有多大作用root。在你的情况下,文件通过管道传输到标准输出,所以sudo 真的没什么作用。

接下来,您使用了gpg --dearmor,这很好。

最后,您将tee文件的内容复制到您的系统中。这是需要权限的部分,root因为您正在写入root- 拥有的目录。

答案是tee运行sudo。从功能上来说,这看起来像:

# 1. Download a file and save as 'file.asc'
wget -qO- https://d...E886DDD89.asc > file.asc

# 2. Dearmor that file (generates file.asc.gpg)
gpg --dearmor file.asc

# 3. Copy that file to /usr/share/keyrings
sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null <file.asc.gpg 

在你的 1-liner 中,它看起来像:

wget -qO- \
  https://deb...6DDD89.asc | \
  gpg --dearmor | \
  sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

或者

wget -qO- https://deb.torproject.org/torproject.org/A3C4F0F979CAA22CDBA8F512EE8CBC9E886DDD89.asc | gpg --dearmor | sudo tee /usr/share/keyrings/tor-archive-keyring.gpg >/dev/null

事实上,我们| tee /usr/share... >/dev/null之所以不使用更简单的方法>/usr/share...,是因为我们可以tee使用sudo.

相关内容