วิธีป้องกัน gpg จากการสร้างไดเรกทอรี. gnupg ในโฮมไดเรกทอรีของผู้ใช้


14

ฉันพยายามเรียกใช้ใช้gpgเครื่องมือในการเข้ารหัสและถอดรหัสไฟล์และฉันต้องการทราบว่าเป็นไปได้ที่จะเรียกใช้เครื่องมือนี้โดยไม่เปลี่ยนสถานะทั่วโลกของผู้ใช้หรือไม่ โดยเฉพาะการรันgpgเป็นครั้งแรกในฐานะผู้ใช้ที่กำหนดจะทำให้.gnupgไดเรกทอรีนั้นสร้างไดเรกทอรีและส่วนอื่น ๆ ในโฮมไดเร็กตอรี่ของผู้ใช้

ฉันประสบความสำเร็จในการแยกการทำงานของคำสั่งนี้จากพวงกุญแจสาธารณะและกุญแจลับของผู้ใช้ (ดู Ruby gem ของฉันที่https://github.com/rcook/rgpgสำหรับวิธีที่ฉันทำ) และนี่คือสิ่งสุดท้ายที่เหลืออยู่ พฤติกรรมของgpgฉันต้องการป้องกัน

คำตอบ:


11

คุณสามารถผ่านได้ใน--homedirการโต้แย้งหรือใช้ตัวแปรสภาพแวดล้อมที่จะมีมันใช้ไดเรกทอรีอื่นแทนGNUPGHOME .gnupgหากคุณกำลังเขียนสคริปต์นี้คุณสามารถสร้างไดเรกทอรีชั่วคราว:

GNUPGHOME=$(mktemp -d $HOME/.gnupgXXXXXX)
export GNUPGHOME

จากนั้นทำความสะอาดเมื่อเสร็จแล้ว:

gpg ...
rm -rfi $GNUPGHOME

4

"วิธีป้องกัน gpg จากการสร้างไดเรกทอรี. gnupg"

ฉันมีปัญหาเดียวกันกับที่อธิบายไว้ในชื่อคำถามขณะตรวจสอบลายนิ้วมือที่สำคัญบนดิสก์ที่ติดตั้งแบบอ่านอย่างเดียว

วิธีแก้ไขที่ฉันใช้คือเพิ่มการ--no-optionsตั้งค่าสถานะให้กับgpgคำสั่ง:

gpg --no-options  \
    --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

ตามคู่มือ :

--no-options

แป้นพิมพ์ลัดสำหรับ --options / dev / null ตรวจพบตัวเลือกนี้ก่อนที่จะพยายามเปิดไฟล์ตัวเลือก การใช้ตัวเลือกนี้จะป้องกันการสร้าง ~ / .gnupg homedir

หาก gpg ยังพิมพ์ข้อผิดพลาดที่ไม่สามารถอ่านพับลิกสาธารณะและรหัสลับของผู้ใช้การเปลี่ยนเส้นทาง2>/dev/nullจะระงับสิ่งเหล่านี้ อย่างไรก็ตามรหัสการออกจากคำสั่งนั้นอาจไม่เป็นศูนย์ในกรณีนี้แม้ว่าจะพิมพ์ข้อมูลที่สำคัญ


2
ฉันไม่เชื่อว่ามันใช้งานได้ มันป้องกันไม่ให้ gpg พยายามอ่านไฟล์ตัวเลือกจากโฮมไดเร็กตอรี่ แต่ไม่ได้ป้องกันไม่ให้มันพยายามเขียนมัน ยังคงมีข้อผิดพลาดหาก gpg ไม่ได้รับอนุญาตให้เขียนถึง HOME gpg: keyblock resource /home/u/.gnupg/pubring.gpg ': ข้อผิดพลาดในการเปิดไฟล์ gpg: ไม่สามารถสร้างได้/home/u/.gnupg/random_seed': No such file or directory
voxobscuro

1
@voxobscuro: เอกสารถูกต้อง; ข้อผิดพลาดสามารถถูกละเว้นคำสั่งยังคงทำงานแม้ว่า ฉันจะอัปเดตคำตอบนี้
kkm

1

- ไม่มีตัวเลือกไม่ทำงาน มันยังคงสร้างโฟลเดอร์. gnupg อย่างไรก็ตามคุณสามารถทำเคล็ดลับนี้เพื่อให้ทำงาน - ชี้ GNUPGHOME เป็น "/ dev / null"

export GNUPGHOME="/dev/null"

จากนั้นเรียกใช้คำสั่ง gpg ใด ๆ มันจะไม่สร้าง. gnupg เลย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.