यहां हर दूसरे जवाब के लिए रूट एक्सेस की आवश्यकता होती है, किसी भी उपयोगकर्ता को उसी मशीन पर फ़ाइल की प्रतिलिपि बनाने की अनुमति देता है , या पासवर्ड साझा करने की आवश्यकता होती है। यहाँ एक विधि है जो नहीं है:
है USER2
(चलो उसे बॉब कहते हैं) निम्नलिखित कमांड चलाएं (आप /tmp
किसी भी निर्देशिका के साथ बदल सकते हैं जिसे दोनों उपयोगकर्ताओं के पास लिखने की अनुमति है, लेकिन /tmp
आदर्श है क्योंकि डिफ़ॉल्ट रूप से यह चिपचिपा है, जो दुर्भावनापूर्ण उपयोगकर्ता को इस प्रक्रिया को प्रस्तुत करने से रोकता है। बॉब द्वारा कि विश्व-पठनीय भी काम करता है):
[bob@computer ~]$ touch /tmp/test.txt
[bob@computer ~]$ chmod 622 /tmp/test.txt
यह एक ऐसी फ़ाइल बनाता है जो विश्व-योग्य है, लेकिन पठनीय नहीं है।
फिर USER1
(चलो उसे ऐलिस कहते हैं) चलाएं (यदि आप पागल हैं, तो ऐलिस अनुमतियों की जांच कर सकते हैं पहले सुनिश्चित करें कि फ़ाइल बॉब के स्वामित्व में है:
[alice@computer ~]$ dd if="$HOME/test.txt" of=/tmp/test.txt
यह की सामग्री को ओवरराइट करता है /tmp/test.txt
। यदि आप फ़ाइल की अखंडता की जांच करना चाहते हैं, तो ऐलिस को फ़ाइल का एक हैश भी उत्पन्न करना चाहिए। उदाहरण के लिए:
[alice@computer ~]$ openssl sha1 < "$HOME/test.txt" > /tmp/test.txt.sha1
आप इसके बजाय डिजिटल रूप से फ़ाइल, या इसकी अखंडता की गारंटी देने के किसी अन्य तरीके पर हस्ताक्षर कर सकते हैं।
और अंत में बॉब फ़ाइल को स्थानांतरित करता है और उसका स्वामित्व लेता है:
[bob@computer ~]$ mv /tmp/test.txt "$HOME"
[bob@computer ~]$ chmod 600 "$HOME/test.txt"
और अगर वह पसंद करता है तो बॉब अखंडता की जांच कर सकता है। यदि हां, तो उसे यह सुनिश्चित करने के लिए जांचना चाहिए कि केवल ऐलिस लिख सकता है /tmp/test.txt
।
[bob@computer ~]$ diff /tmp/test/txt.sha1 <(openssl sha1 < "$HOME/test.txt")
यदि फ़ाइल सही तरीके से कॉपी की गई थी, तो इसे कोई आउटपुट नहीं दिखाना चाहिए।