Vấn đề
Bạn có một tệp PDF không đáng tin cậy. Nó có thể chứa phần mềm độc hại và phần mềm độc hại có thể lây nhiễm vào máy tính của bạn và gây ra những điều tồi tệ cho nó.
Bạn muốn chuyển đổi tệp PDF này thành tệp PDF "đáng tin cậy" không có bất kỳ phần mềm độc hại nào mà không gây nguy hiểm cho máy tính Ubuntu của bạn.
phương pháp
Ý tưởng là cài đặt nhiều lần trong máy tính Ubuntu của bạn và sử dụng Máy ảo (VM) chính mặc định để "làm phẳng" tệp PDF không đáng tin cậy. Quá trình làm phẳng PDF liên quan đến việc chuyển đổi tệp PDF thành tệp phần mô tả (PS) và sau đó chuyển đổi tệp PS trở lại thành PDF. PDF thu được là "đáng tin cậy" vì bất kỳ phần mềm độc hại nào trong tệp PDF gốc dự kiến sẽ không tồn tại trong quá trình chuyển đổi kép.
Cuối cùng, khi quá trình chuyển đổi hoàn tất, VM sẽ bị hủy. Vì vậy, bất kỳ thay đổi nào có thể được thực hiện đối với VM bởi phần mềm độc hại trong tệp PDF gốc đều bị hủy cùng với nó.
Bằng chứng về khái niệm
Giải pháp này dựa trên dòng lệnh, nơi chúng tôi sẽ nhập (hoặc dán) các lệnh trong thiết bị đầu cuối.
Trước tiên, chúng ta hãy cài đặt Multipass trong máy tính của bạn bằng lệnh sau:
sudo snap cài đặt multipass
Bạn phải làm điều đó chỉ một lần.
Phần còn lại của công việc được thực hiện bởi một tập lệnh bash. Tôi gọi nó là flatten.sh. Lưu tập lệnh bên dưới trong thư mục nhà của bạn dưới dạng làm phẳng.sh
và làm cho nó có thể thực thi được.
#!/bin/bash
nếu [ -z $1 ]; sau đó
echo "Không có đối số nào được đặt. Đối số hợp lệ là tên tệp PDF.pdf trong thư mục $HOME"
đọc -ep "Nhập tên tệp: " FULLNAME
khác
FULLNAME=$1
fi
nếu [ ! -f $FULLNAME ]; sau đó
echo "Không tìm thấy tập tin $FULLNAME."
echo "Đối số hợp lệ là tệp PDF filename.pdf trong thư mục $HOME"
tiếng vang "thoát..."
thoát 1
fi
INPNAME=$(tên cơ sở $FULLNAME)
DIR=$(tên thư mục $FULLNAME)
OUTNAME="Trusted-$INPNAME"
khởi động nhiều lần
multipass exec chính -- Sudo apt update
multipass exec chính -- Sudo apt install ghostscript -y
nhân exec chính -- cp "Home/$INPNAME" .
multipass exec chính -- tạm thời pdf2ps "$INPNAME"
multipass exec chính -- tạm thời ps2pdf "$OUTNAME"
multipass exec chính -- mv "$OUTNAME" Trang chủ/
multipass dừng chính
đa xóa chính
thanh lọc nhiều lần
Giả sử bạn có một tệp có tên thử nghiệm.pdf
mà bạn không tin tưởng. Sử dụng lệnh sau để chạy tập lệnh:
./flatten.sh test.pdf
Các thử nghiệm.pdf
phải nằm trong thư mục $HOME của bạn. Nếu bạn có tệp PDF của mình trong một thư mục khác, tập lệnh (như được viết) sẽ không tìm thấy tệp đó.
Đây là danh sách những điều sẽ xảy ra khi bạn bắt đầu tập lệnh này:
- Một VM sẽ được tạo
- Một phiên bản tối thiểu của Ubuntu sẽ được cài đặt trong VM
- Kịch bản sẽ cài đặt
bản thảo ma
, cần thiết cho việc chuyển đổi
- Tệp PDF không đáng tin cậy sẽ được sao chép vào bộ lưu trữ ảo của VM.
- PDF không đúng sự thật sẽ được chuyển đổi thành tệp PS tạm thời và
- Tệp PS tạm thời sẽ được chuyển đổi thành PDF "đáng tin cậy" với tiền tố "Truted-".
- PDF đáng tin cậy sẽ được chuyển trở lại thư mục chính của bạn.
- Máy ảo sẽ bị dừng, bị xóa và bị xóa.
Toàn bộ quá trình này sẽ mất một chút thời gian, đặc biệt là khởi tạo VM và cài đặt bản thảo ma
.
Lưu ý: nếu tệp PDF không đáng tin cậy quá lớn, Multipass VM có thể hết bộ nhớ ảo được phân bổ theo mặc định. Xem tài liệu Multipass về cách phân bổ thêm bộ nhớ cho VM.
Nhược điểm
Theo như tôi có thể nói, không có cách nào để chụp ảnh nhanh máy ảo chính trong Multipass sau khi cài đặt Ghostscript và quay máy ảo được lưu trữ đó cho lần tiếp theo bạn cần vệ sinh tệp PDF. Nếu điều này là có thể, nó sẽ làm cho quá trình này mất ít thời gian hơn.
Cách khác
Một cách khác để đạt được kết quả tương tự có thể là sử dụng thùng chứa LDX/LXC. LXD hỗ trợ ảnh chụp nhanh và vùng chứa tùy chỉnh chỉ với Ghostscript có thể nhẹ hơn một chút so với máy ảo đầy đủ. Tuy nhiên, tôi không có bất kỳ kinh nghiệm nào với LXD/LXC.
Hi vọng điêu nay co ich