标题说的差不多。转换为受信任的PDF是一个很有价值的工具,在Ubuntu生态系统中实现它将是很棒的。
发布于 2021-08-22 19:09:15
您有一个不受信任的PDF文件。它可能包含恶意软件,恶意软件可能会感染您的计算机并对其进行可怕的操作。
您希望将此PDF转换为“受信任的”PDF,在不危及您的Ubuntu计算机的情况下不存在任何恶意软件。
其想法是在您的Ubuntu计算机中安装多通,并使用默认的主虚拟机(VM)“夷平”不受信任的PDF文件。平坦PDF的过程包括将PDF文件转换为postscript ( PS )文件,然后将PS文件转换回PDF。结果PDF是“可信的”,因为任何恶意软件在原来的PDF预计将无法生存的双重转换过程。
最后,一旦转换完成,VM就被销毁。这样,原始PDF中的恶意软件可能对VM所做的任何更改都会被销毁。
的证明
此解决方案基于命令行,我们将在终端中键入(或粘贴)命令。
首先,让我们使用以下命令在您的计算机中安装Multipass:
sudo快速安装多通道
你只需要做一次。
其余的工作由bash脚本完成。我叫它flatten.sh。将下面的脚本保存在主文件夹中作为flatten.sh,并使其可执行。
#!/bin/bash
if [ -z $1 ]; then
echo "No argument set. Valid argument is a PDF filename.pdf in the $HOME folder"
read -ep "Enter filename: " FULLNAME
else
FULLNAME=$1
fi
if [ ! -f $FULLNAME ]; then
echo "The file $FULLNAME not found."
echo "Valid argument is a PDF filename.pdf in the $HOME folder"
echo "exiting..."
exit 1
fi
INPNAME=$(basename $FULLNAME)
DIR=$(dirname $FULLNAME)
OUTNAME="Trusted-$INPNAME"
multipass start
multipass exec primary -- sudo apt update
multipass exec primary -- sudo apt install ghostscript -y
multipass exec primary -- cp "Home/$INPNAME" .
multipass exec primary -- pdf2ps "$INPNAME" temp
multipass exec primary -- ps2pdf temp "$OUTNAME"
multipass exec primary -- mv "$OUTNAME" Home/
multipass stop primary
multipass delete primary
multipass purge让我们说,您有一个名为test.pdf的文件,您不信任它。使用以下命令运行脚本:
./flatten.sh test.pdftest.pdf应该在您的$HOME文件夹中。如果您将PDF文件放在另一个文件夹中,脚本(正在编写)将找不到它。
下面列出了启动此脚本后将发生的事情:
ghostscript整个过程需要一些时间,特别是VM的启动和ghostscript的安装。
注意:如果不受信任的PDF文件非常大,则Multipass可能会在默认情况下耗尽分配的虚拟内存。请参阅有关如何将更多内存分配给VM的多通文档。
据我所知,在安装Ghostscript并在下次需要清理PDF时旋转存储的VM之后,无法在Multipass中获取主VM的快照。如果这是可能的话,这将使这一过程所需的时间少一点。
实现类似结果的另一种方法可能是使用LDX/LXC集装箱。LXD支持快照,带有Ghostscript的自定义容器可能比整个VM轻一些。但是,我对LXD/LXC没有任何经验。
希望这能有所帮助
https://askubuntu.com/questions/1359346
复制相似问题