ड्रॉपबॉक्स में स्वामित्व और अनुमतियां कैसे संरक्षित करें?


9

मेरे पास दो मशीनें हैं, एक मैक और एक पीसी लिनक्स चल रहा है, जिसे मैं ड्रॉपबॉक्स का उपयोग करने के बीच एक निश्चित फ़ाइल को सिंक करने की कोशिश कर रहा हूं।

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

हालाँकि, जब भी फ़ाइल एक बॉक्स से दूसरे बॉक्स में सिंक हो जाती है, तो ऐसा प्रतीत होता है कि ड्रॉपबॉक्स अनुमतियों के दोनों सेटों को पूरी तरह से नजरअंदाज कर देता है, और अनुमतियों के साथ मेरे द्वारा स्वामित्व की जाने वाली नई अपडेट की गई फाइल में बदलाव करता है 0644 (मेरे लिए rw, बाकी सभी के लिए r) )। अगर फ़ाइल मेरे पास नहीं है, तो मैं खुद पर स्वामित्व भी बदल देता हूँ! नतीजतन, दूसरे उपयोगकर्ता के पास अब तक अनुमति नहीं है जब तक कि मैं मैन्युअल रूप से अंदर नहीं जाता हूं और फ़ाइल को फिर से चुनता हूं।

अतिरिक्त चीजें जो मैंने कोशिश की हैं उन्होंने काम नहीं किया है:

  1. सुनिश्चित करें कि दोनों मशीनों पर उपयोगकर्ता खाते ("अन्य उपयोगकर्ता" के लिए) एक ही यूआईडी है। यह निश्चित नहीं है कि यह आवश्यक क्यों होगा, क्योंकि मेरे प्राथमिक खाते में दोनों मशीनों पर समान यूआईडी नहीं है।

  2. chmod u+s <dir> तथा chmod g+s <dir> निर्देशिका कहाँ है जिसमें प्रश्न में फ़ाइल है।

  3. फ़ाइल का स्वामित्व अन्य उपयोगकर्ता के लिए बदलना और ड्रॉपबॉक्स निर्देशिका के बाहर रखना, और ड्रॉपबॉक्स निर्देशिका में फ़ाइल के लिए एक सिमलिंक बनाना। ड्रॉपबॉक्स वास्तव में सिमिंक को हटा देता है, मूल फ़ाइल (ड्रॉपबॉक्स निर्देशिका के बाहर) को अपरिवर्तित छोड़ देता है, और उस फ़ाइल की एक नई प्रतिलिपि बनाता है जहां सिमिंकल हुआ करता था!

मैं चीजों को कैसे सेट कर सकता हूं ताकि मेरी अनुमति और / या स्वामित्व संरक्षित रहे

जवाबों:


5

ठीक है, यहाँ समाधान है जो मैंने पाया है। ड्रॉपबॉक्स के भविष्य के संस्करणों के साथ काम करेगा या नहीं यह अनिश्चित है। मैंने समस्या को और हल करने का प्रयास करने के लिए ड्रॉपबॉक्स के साथ एक सेवा अनुरोध खोला है।

कुल मिलाकर, समाधान दो चीजों का एक संयोजन है:

  1. ड्रॉपबॉक्स प्रक्रिया के लिए umask सेट करना ताकि नई बनाई गई फ़ाइलों में 0660 की अनुमति हो। यह उपयोगकर्ता रीड / राइट, ग्रुप रीड / राइट, अन्य कोई नहीं है।
  2. समूह में नई बनाई गई फ़ाइलों के लिए समूह सेट करना, जिसमें प्रश्न में फ़ाइलों तक पहुंच लिखना है।

यह समाधान ड्रॉपबॉक्स फ़ोल्डर में सभी फ़ाइलों पर लागू होगा, न कि केवल एक फ़ाइल पर। मेरे मामले में यह स्वीकार्य है।

लिनक्स के तहत, मैं संशोधित करता हूं /etc/init.d/dropbox स्टार्टअप स्क्रिप्ट ताकि एक ड्रोन के रूप में ड्रॉपबॉक्स को आमंत्रित करने वाली रेखा पढ़े:

HOME="$HOMEDIR" start-stop-daemon --umask 0006 -b -o -c $dbuser:$dbgrp -S -u $dbuser -x $HOMEDIR/$DAEMON

जोड़ रहा है --umask 0006 umask की स्थापना को पूरा करता है, और :$dbgrp -c विकल्प का हिस्सा समूह को यह निर्धारित करने के लिए पूरा करता है कि डेमन किससे संबंधित है।

मैक साइड पर, मैं निम्नलिखित कमांड चलाता हूं:

ps aux | grep -i dropbox

इससे मैं कमांड-लाइन विकल्प देख सकता हूं, जो ड्रॉपबॉक्स शुरू हुआ और इसमें से मैंने बाद में उपयोग किए गए $ mydropboxid को निकाला। फिर मैंने ड्रॉपबॉक्स को छोड़ दिया और कमांड प्रॉम्प्ट खोलकर निम्नलिखित कमांड दर्ज करें:

umask 0006
/Applications/Dropbox.app/Contents/MacOS/Dropbox -psn_0_$mydropboxid &
exit

मेरी योजना कुछ बिंदु पर उपरोक्त आदेशों को स्वचालित करने की है ताकि मुझे किसी भी समय मेरी मशीन को रिबूट करने के लिए फिर से न चलाना पड़े।

यह नई बनाई गई फ़ाइलों के लिए मास्क सेट करने का काम करता है इसलिए फ़ाइल के लिए समूह की पहुंच है। हालाँकि, समूह को सही तरीके से सेट करने के लिए मुझे ड्रॉपबॉक्स कैश डायरेक्टरी को सेट करने की आवश्यकता है - यह अब तक केवल इसके लिए आवश्यक है:

sudo chgrp -R $dbgrp ~/Dropbox/.dropbox.cache
sudo chmod -R g+s ~/Dropbox/.dropbox.cache

ऐसा प्रतीत होता है कि सभी नई फाइलें सबसे पहले ~ / ड्रॉपबॉक्स / .dropbox.cache निर्देशिका के तहत बनाई गई हैं, इसलिए उपरोक्त कमांड उन नई फाइलों को उचित स्वामित्व और अनुमति देता है जो ड्रॉपबॉक्स द्वारा बनाई गई नई फाइलों का सही समूह है।


दिलचस्प। क्या आप थोड़ा और समझा सकते हैं कि यह लाइन और सामान्य रूप से संशोधित फ़ाइल क्या है?
nixda

स्टार्ट-स्टॉप-डेमॉन एक लिनक्स उपयोगिता है जो आपको विभिन्न सेटिंग्स को नियंत्रित करने देती है जिसके तहत एक डेमॉन चलता है। अधिकांश पैरामीटर शेल चर में पारित किए जाते हैं। मुख्य संशोधन "--umask 0006" के अलावा हैं जो उपयोगकर्ता और समूह के लिए आर / डब्ल्यू की अनुमति को छोड़ देता है, लेकिन इसे दूसरों के लिए हटा देता है, और समूह पैरामीटर (": $ dbgrp") के अलावा -c पैरामीटर, यूआईडी / जीआईडी ​​सेट करता है जैसे डेमॉन प्रक्रिया चलती है)। मैक कमांड समान है, लेकिन मुझे एक समान उपयोगिता नहीं मिली है, इसलिए ड्रॉपबॉक्स चलाने वाले शेल में इन सेटिंग्स को स्थापित करने पर निर्भर करता है।
Michael

क्या यह वर्तमान ड्रॉपबॉक्स संस्करण पर भी लागू होता है? मेरी ड्रॉपबॉक्स स्क्रिप्ट है PAR=$(dirname $(readlink -f $0)) OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH LD_LIBRARY_PATH=$PAR${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH exec $PAR/dropbox $@ और में स्थित है
bicycle

@ साइकल मुझे इस समाधान के साथ आने के बाद से मेरे ड्रॉपबॉक्स क्लाइंट को अपडेट करने के लिए प्रेरित नहीं किया गया है।
Michael

@ मिचेल, क्या ड्रॉपबॉक्स ने कभी आपके सेवा अनुरोध का जवाब दिया?
bbozo

0

उस फ़ाइल को अपने फ़ोल्डर में रखें और उस फ़ोल्डर को अन्य उपयोगकर्ता के साथ साझा करें। इस तरह वे नवीनतम संस्करण को संपादित कर रहे हैं जैसा कि आप हैं। एक ही समय में इस पर काम न करने के लिए सावधान रहें।


1
इस तथ्य को प्रतिबिंबित करने के लिए मेरे मूल प्रश्न को अपडेट करना कि प्रश्न में फ़ाइल वाला फ़ोल्डर पहले से ही अन्य उपयोगकर्ता के स्वामित्व में है। इससे कोई फर्क नहीं पड़ता, ड्रॉपबॉक्स अभी भी वर्तमान स्वामित्व / अनुमतियों की अनदेखी करता है और जब भी फ़ाइल को मशीन में सिंक किया जाता है, तब उन्हें रीसेट करता है।
Michael

0

यदि आप दो कंप्यूटरों के बीच एक फ़ाइल की प्रतिलिपि बनाते हैं, तो प्रतिलिपि बनाने वाला सॉफ़्टवेयर यह तय करता है कि प्रतिलिपि पर अनुमतियाँ क्या हैं। आप जो कर रहे हैं, उसके लिए आपको कुछ ठीक-ठाक अनाज की अनुमति की आवश्यकता है। ड्रॉपबॉक्स अनुमति-मानचित्रण सुविधाएँ संरक्षण अनुमतियों तक सीमित हैं अगर दोनों सिस्टम एक ही OS चलाते हैं । दो अलग-अलग ओएस के बीच नकल के लिए कोई विशिष्ट परिणाम की गारंटी नहीं है।

यहां तक ​​कि अगर आप ड्रॉपबॉक्स को जिस तरह से आप चाहते हैं, उसका उपयोग करने का कोई तरीका समझ सकते हैं, तो मैं इस पर भरोसा करने की सलाह दूंगा। अनजाने सॉफ्टवेयर क्वर्की में बिना सूचना के गायब होने का एक तरीका है। आपको फ़ाइल स्थानांतरण टूल को देखने की आवश्यकता है जो आपके उपयोग के मामले को ध्यान में रखते हुए डिज़ाइन किए गए हैं। मेरी पहली पसंद होगी rsync , जो लिनक्स डिस्ट्रोस पर मानक है, और विंडोज पर स्थापित करना आसान है, खासकर यदि आपके पास है Cygwin । और Cygwin आम तौर पर उन लोगों के लिए उपयोगी है जिन्हें विंडोज और लिनक्स दोनों के साथ काम करना है!

बेशक, rsync को प्रत्यक्ष-कनेक्शन की आवश्यकता होती है - कोई केंद्रीय सर्वर नहीं है जैसे कि एक ड्रॉपबॉक्स प्रदान करता है। आप इससे कैसे निपटते हैं, यह आपके नेटवर्क सेटअप के विवरण पर निर्भर करता है।


हाँ, मैं इस बात से सहमत हूँ कि आप quirks के बारे में क्या कह रहे हैं। मेरे दिमाग में यह अक्सर सॉफ़्टवेयर को अपग्रेड करने से रोकने का एक अच्छा कारण है - अगर यह वह है जो आप चाहते हैं, तो नए संस्करण क्यों टूट रहे हैं!
Michael

rsync द्वि-दिशात्मक नहीं है, और हर बार फ़ाइल में परिवर्तन किए जाने पर स्वचालित रूप से अपडेट नहीं होता है।
Michael

@ मिचेल आपको हमेशा सॉफ़्टवेयर अपग्रेड करने के बारे में कोई विकल्प नहीं है जब यह क्लाउड-आधारित (जैसे ड्रॉपबॉक्स) आप कभी नहीँ एक विकल्प है और यह देखना कठिन है कि आप जो करने की कोशिश कर रहे हैं उसके लिए द्वि-दिशात्मकता या स्वचालित प्रतिलिपि क्यों आवश्यक है।
Isaac Rabinovitch

जब तक सेवा पिछले ग्राहक के साथ पीछे रहती है तब तक आपके पास एक विकल्प है। और जब तक ड्रॉपबॉक्स हर किसी को तुरंत अपग्रेड करने के लिए मजबूर नहीं कर सकता, मुझे संदेह है कि वे प्रोटोकॉल में निम्न स्तर का बदलाव करने जैसा कुछ कर सकते हैं जो पुराने ग्राहकों को तोड़ देगा। एक ही तरीका है कि मैं देख सकता हूँ कि वे इसे किसी प्रकार के संक्रमण के माध्यम से कर सकते हैं।
Michael

इस बारे में कि मैं क्या करने की कोशिश कर रहा हूं, मैं दो अलग-अलग मशीनों पर फाइलों के एक सेट को बनाए रखने की कोशिश कर रहा हूं और किसी भी समय उनमें से किसी एक को संशोधित करने में सक्षम हो सकता हूं, फिर थोड़े समय बाद दूसरे पर जाएं और उठाएं जहाँ मैं छोड़ दिया, मैन्युअल रूप से एक rsync की तरह कुछ भी करने के लिए बिना। इसका मुख्य कारण यह है कि मैं दूरस्थ रूप से (वेब ​​इंटरफ़ेस के माध्यम से) कर सकता हूं, और फ़ायरवॉल और विलंबता जैसे मुद्दे हैं जो डेटा की एक केंद्रीकृत प्रतिलिपि को बनाए रखने के लिए असुविधाजनक बनाते हैं।
Michael
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.