.Gnupg संलग्न फ़ोल्डर के लिए सही अनुमतियाँ क्या हैं? gpg: चेतावनी: विन्यास फाइल पर निर्देशिका अनुमतियों को संलग्न करना असुरक्षित है


27

मैं सिर्फ चुमोद और दौड़ना नहीं चाहता, जब तक कि मुझे सही जवाब नहीं मिल जाता, और न ही मैं GnuPG को रूट के रूप में चलाना चाहता हूं। आसान तय यह होगा कि इसे केवल सेट किया जाए ताकि केवल मेरा उपयोगकर्ता ही इसे पढ़ सके, लेकिन मुझे नहीं लगता कि यह सबसे अच्छा तरीका है।

जब मैं gpg का उपयोग करने का प्रयास करता हूं तो मुझे निम्न त्रुटि मिलती है:

gpg: WARNING: unsafe enclosing directory permissions on configuration file `/home/nb/.gnupg/gpg.conf'
gpg: external program calls are disabled due to unsafe options file permissions
gpg: keyserver communications error: general error
gpg: keyserver receive failed: general error

GnuPG की ~/.gnupg/वर्तमान स्थिति:

% stat .gnupg 
  File: ‘.gnupg’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: 1bh/27d Inode: 20578751    Links: 3
Access: (0775/drwxrwxr-x)  Uid: ( 1000/      nb)   Gid: ( 1000/      XXXX)
Access: 2015-08-09 18:14:45.937760752 -0700
Modify: 2015-08-05 20:54:32.860883569 -0700
Change: 2015-08-05 20:54:32.860883569 -0700
 Birth: -

निम्नलिखित लिंक पर दिए गए उत्तर में ~/gnupg/gpg.confफ़ाइल के लिए 600 अनुमतियों की सलाह दी गई है, लेकिन क्या संलग्न फ़ोल्डर को उन अनुमतियों की भी आवश्यकता है?

/ubuntu/330755/unsafe-permissions-on-configuration-file-home-david-gnupg-gpg-conf-what-doe

जवाबों:


53

हां, आपको संलग्न निर्देशिका की अनुमतियों को ठीक करने की भी आवश्यकता होगी ~/.gnupg

क्योंकि फ़ोल्डर पर पर्याप्त अधिकारों वाला एक हमलावर फ़ोल्डर की सामग्री में हेरफेर कर सकता है।

निम्नलिखित आदेश निष्पादित करें:

  1. सुनिश्चित करें कि, फ़ोल्डर + सामग्री आपसे संबंधित है:
    chown -R $(whoami) ~/.gnupg/

  2. .gnupgऔर सबफ़ोल्डर्स के लिए सही अधिकार :
    find ~/.gnupg -type f -exec chmod 600 {} \;
    find ~/.gnupg -type d -exec chmod 700 {} \;

के लिए स्पष्टीकरण 600, 700:

पीछे से शुरू करें: '00' का अर्थ है उन सभी के लिए कोई अधिकार नहीं जो फ़ाइलों / निर्देशिकाओं के स्वामी नहीं हैं।

इसका मतलब है, कि इन (gnupg) को पढ़ने की प्रक्रिया को इन फ़ाइलों / निर्देशिकाओं के स्वामी के रूप में चलना चाहिए।

~/.gnupg/एक फ़ोल्डर है, सामग्री को पढ़ने की प्रक्रिया इस फ़ोल्डर को "दर्ज" (= निष्पादित) करने में सक्षम होनी चाहिए। यह "x" बिट है। इसका मान "1" है।7 - 6 = 1

दोनों ~/.gnupg/और ~/.gnupg/*आप पढ़ना चाहते हैं और लिखने में सक्षम होना चाहते हैं 4 + 2 = 6

==> केवल फ़ाइलों का स्वामी ही उन्हें अब (= 600) पढ़ / लिख सकता है। केवल वह निर्देशिका में ही प्रवेश कर सकता है (= 700)

==> ये फ़ाइल अधिकार प्रलेखित होने के लिए "आवश्यकता" नहीं है, वे इच्छित उपयोग से व्युत्पन्न हैं।

अनुमति संकेतन के बारे में अधिक जानकारी: https://en.wikipedia.org/wiki/File_system_permissions#Notation_of_traditional_Unix_permissions


1
//, क्या आप जानते हैं कि ग्नूपीजी के निर्माता इन विशिष्ट अनुमति स्तरों का दस्तावेज बनाते हैं? यदि वे उन्हें दस्तावेज देते हैं, तो मुझे यह कहां मिल सकता है?
नाथन बसानी

1
वे करते हैं! आपने त्रुटि संदेश पोस्ट किया;)
एलेक्स स्ट्रैगीज़

1
//, हाँ, लेकिन त्रुटि संदेश यह नहीं कहता कि अनुमतियाँ क्या होनी चाहिए। क्या वे इसे कहीं भी प्रकाशित करते हैं?
नाथन बसानी 22

//, इसके अलावा, हम में से उन लोगों के लिए एक स्पष्टीकरण को जोड़ने के लिए धन्यवाद जो अनुमति नंबरिंग योजना से परिचित नहीं हैं।
नाथन बसानी 22

6

डिफ़ॉल्ट रूप से GnuPG सुरक्षित पहुँच विशेषाधिकार को लागू करता है, जिसका अर्थ है कि कोई और (लेकिन आप) अपने GnuPG होम निर्देशिका तक पहुँच सकते हैं ~/.gnupg। किसी अन्य मशीन से GnuPG होम निर्देशिका की प्रतिलिपि बनाने के बाद ये एक्सेस विशेषाधिकार अक्सर सख्त नहीं होते हैं, और अक्सर गलत स्वामित्व इस तरह के संदेश का कारण होता है।

# Set ownership to your own user and primary group
chown -R "$USER:$(id -gn)" ~/.gnupg
# Set permissions to read, write, execute for only yourself, no others
chmod 700 ~/.gnupg
# Set permissions to read, write for only yourself, no others
chmod 600 ~/.gnupg/*

यदि आपके पास (किसी भी कारण से) अपने स्वयं के फ़ोल्डर को अंदर बनाया है ~/.gnupg, तो आपको उस फ़ोल्डर में अतिरिक्त अनुमतियाँ भी लागू करनी होंगी। फ़ोल्डर को खोलने के लिए निष्पादन विशेषाधिकारों की आवश्यकता होती है।


4

यद्यपि जेन्स एराट ने पहले ही अपने अंतिम वाक्य में इसका उल्लेख किया है, लेकिन मुझे लगता है कि यह जोर दिया जाना चाहिए कि ~ / .gnupg के अंदर किसी भी फ़ोल्डर को निष्पादन योग्य (मोड 700) भी होना चाहिए। यह विशेष रूप से निजी-कुंजियों * फ़ोल्डर के लिए है जो कि gpg द्वारा बनाया गया है। इस पर ध्यान देने से पहले मैं थोड़ी देर के लिए अनुमति की समस्याओं से घिरा हुआ था।


~ ~ .gnupg -type d -exec chmod 700 {} \;
क्रेग हिक्स

2

ये दो लाइनें निर्देशिकाओं और फ़ाइलों के लिए अनुमतियों को अलग-अलग और सही तरीके से सेट करेंगी:

find ~/.gnupg -type d -exec chmod 700 {} \;
find ~/.gnupg -type f -exec chmod 600 {} \;

स्वामित्व धारण करना पहले से ही सही ढंग से निर्धारित है।

ध्यान दें कि यह सॉकेट्स पर अनुमतियाँ नहीं बदलता है S.gpg-agent*। (केवल नए gpg v2 में सॉकेट्स शामिल हैं, पुराने gpg v1 नहीं)।


1
अनुभव से उत्पन्न उत्तर की तरह लगता है।
नाथन बसानी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.