फ़ाइलों को गलत तरीके से एन्फ़ोज़ वॉल्यूम में क्षतिग्रस्त माना जाता है


8

मैं अपने मैकबुक प्रो रेटिना लेट 2013 पर MacPorts 2.2.1 के माध्यम से उपयोग encfs @1.7.5और osxfuse @2.6.4स्थापित कर रहा हूं जो OS X Mavericks 10.9.2 पर चल रहा है। मेरी encfsमात्रा में कुछ फाइलें (जैसे xlsx, pdf) खोलते समय , मुझे एक त्रुटि मिलती है "X क्षतिग्रस्त है और उसे खोला नहीं जा सकता है।" साथ ही इसे कूड़ेदान में ले जाने का सुझाव भी। हालाँकि, जब मैं उस फाइल को कहीं और कॉपी करता हूं (यानी encfsवॉल्यूम पर नहीं ), तो यह ठीक काम करता है। ऐसा क्यों है?

संपादित करें: मैंने ऑनलाइन देखा और गेटकीपर को अक्षम करने वाला एक पद पाया । इसने चाल चली। संक्षेप में, आप "सुरक्षा प्राथमिकताएं -> सुरक्षा और गोपनीयता -> यहां से डाउनलोड किए गए एप्लिकेशनों को अनुमति दें" में जाएं।

मैं समझता हूं कि समाधान काम करता है, लेकिन मैं जानना चाहूंगा कि यह क्यों काम करता है। अग्रिम में धन्यवाद।

संपादित 2: इसके अलावा, अगर कोई मेरे पोस्ट को टैग कर सकता है, तो encfsयह बहुत सराहनीय होगा।

जवाबों:


6

मुझे यहाँ उत्तर मिला है (BoxCryptor के लिए):

विशेष परिस्थितियों में, मैक ओएस एक्स विस्तारित विशेषता 'com.apple.quarantine' को एक फ़ाइल में जोड़ता है, जिसे इंटरनेट से डाउनलोड किया गया था। यह BoxCryptor Folder के अंदर फाइलों के लिए भी हो सकता है। यदि एन्क्रिप्ट की गई फ़ाइल में यह विस्तारित विशेषता सेट है, तो आप BoxCryptor वॉल्यूम में प्लेनटेक्स्ट फ़ाइल को खोलने का प्रयास करते समय "क्षतिग्रस्त है" त्रुटि संदेश प्राप्त करते हैं।

इसे भी आज़माएं, अधिक सुरक्षित समाधान:

x) ओपन टर्मिनल (अनुप्रयोग -> उपयोगिताएँ)

y) निम्न कमांड चलाएँ (पथ को प्रतिस्थापित करें):

$ xattr -r -d com.apple.quarantine / path / to / encfs / Mount / point


2

@apmouse सही है: आप फ़ाइल को xattr से ठीक कर सकते हैं। लेकिन आपको ऐसा बार-बार करना होगा - हर बार जब आप किसी फाइल को सेव करते हैं तो उसमें वापस संगरोधित ध्वज जुड़ जाएगा।

जैसा कि आपने बताया, कम सुरक्षित लेकिन अधिक सुविधाजनक विकल्प है: गेटकीपर को अक्षम करें।

गेटकीपर को कैसे निष्क्रिय करें

मैं समझता हूं कि समाधान काम करता है, लेकिन मैं जानना चाहूंगा कि यह क्यों काम करता है। अग्रिम में धन्यवाद।

ध्यान देने वाली पहली बात यह है कि यदि आप कीनोट में जाते हैं और फ़ाइल → ओपन चुनते हैं, तो आप बिना किसी समस्या के "क्षतिग्रस्त" फ़ाइल को खोल सकते हैं। इसका तात्पर्य यह है कि यह वास्तव में फाइंडर है जो फ़ाइल को रोकने के लिए हस्तक्षेप कर रहा है।

त्रुटि संदेश "_____ क्षतिग्रस्त है और खोला नहीं जा सकता है" वास्तव में एक हस्ताक्षर त्रुटि है ( यहां देखें - नीचे के तरीके के बारे में 3/4 वीं), जिसका अर्थ है कि गेटकीपर एक वैध हस्ताक्षर को सत्यापित नहीं कर सकता है। हस्ताक्षर सत्यापन को निष्पादन योग्य लोगों पर लागू किया जाना चाहिए, और मुझे अभी भी यह पता नहीं चला है कि इस स्थिति में यह क्यों खराब हो रहा है।

मैंने ऑक्सफ्यूज़ के सैंपल लूपबैक फ़ाइल सिस्टम को संकलित करने और वहाँ पर उसी "क्षतिग्रस्त" फ़ाइल को डालने की कोशिश की और यह ठीक खुलता है। इसलिए मुझे लगता है कि यह बग एन्कोफ्स के लिए विशिष्ट है - सामान्य रूप से ऑक्सफ्यूज के लिए नहीं।

इसके लायक क्या है, इस सटीक समस्या के लिए ऑक्सफ्यूज़ परियोजना पर एक टिकट खुला है। यदि आपको यह समस्या हो रही है, तो उस टिकट पर अपना विवरण पोस्ट करें।

उम्मीद है की यह मदद करेगा...


मुझे लगा कि गेटकीपर केवल ऐप्स को प्रभावित करता है न कि दस्तावेजों को। तो यह .xlsx फ़ाइलों को कैसे प्रभावित करता है?
user151019

मेरा अनुमान है कि झंडा सभी डाउनलोड किए गए दस्तावेजों पर लागू होता है जैसा कि @ एपमाउस के उत्तर में है, लेकिन गैर एप्लिकेशन पर "लागू" नहीं है, लेकिन एन्क्रिप्टेड संस्करणों पर गड़बड़ व्यवहार के साथ। मुझे sshfsयकीन है कि इस व्यवहार को और अन्य FUSE फाइल सिस्टम पर परीक्षण करने की आवश्यकता है।
निकोलस डी जे

2

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

#!/bin/bash
# script to mount encrypted volume

ENCFSDIR=<encfs dir>
MOUNTPOINT=<mount point>
SAFELOC=<somewhere outside mounted volume>

encfs $ENCFSDIR $MOUNTPOINT

cd $MOUNTPOINT
xattr -r -d com.apple.quarantine .
MY_PROMPT='SECRET: '
echo 'noscecrets to finish'
while :
do
  echo -n "$MY_PROMPT"
  read line
  if [ 'nosecrets' == "$line" ] ; then
    break
  fi
  eval "$line"
done

\# and clean up
cd $SAFELOC
umount $MOUNTPOINT

exit 0

2

मुझे लगता है कि आपके पास हर बार चलाने की आवश्यकता के बजाय मुझे इसके लिए एक अधिक निरंतर समाधान है। जैसा कि मैंने अभी बग रिपोर्ट का उल्‍लेख किया है :

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

इसलिए मैंने अपने sshfsबाइनरी को चिह्नित किया setuid, और मैंने -o allow_otherअपनी sshfsकमांड लाइन में माउंट विकल्प जोड़ा , और ... मैं माउंट किए गए वॉल्यूम पर मज़बूती से दस्तावेजों को खोलने और संपादित करने में सक्षम प्रतीत होता हूं। अगर यह काम करना बंद कर देता है, तो मैं प्रयोग करना और फॉलो करना जारी रखूंगा।

मैं निश्चित रूप से एक सेतु रूट बाइनरी के बारे में चिंतित हूं जो चारों ओर झूठ बोल रही है, लेकिन यह एक डेमन को चलाने के विकल्प से बेहतर लगता है जिसे एनएफएस या एसएमबी प्राप्त करने के लिए चीजों के फाइल सर्वर साइड पर रूट विशेषाधिकार की आवश्यकता होती है । :)

यह देखते हुए कि allow_otherFUSE माउंट विकल्प है और इसके लिए विशिष्ट नहीं है sshfs, मेरा मानना ​​है कि यह वर्कअराउंड भी काम करेगा encfs। यह जानना बहुत अच्छा होगा कि क्या किसी ने कोशिश की और यह काम कर गया!


1

धन्यवाद @Glyph, मैं जो बता सकता हूं वह आपके चरणों का पालन करने के बाद काम करता हुआ प्रतीत होता है। मैंने इन चरणों का पालन किया:

  1. पहले मुझे एक समूह जोड़ना था, जो मैं ऑक्सफ्यूज़ एडमिन ग्रुप से संबंधित हूं, अन्यथा allow_other ऑपरेशन में समर्थित नहीं होने के साथ विफल हो जाएगा।

    sysctl -w osxfuse.tunables.admin_group=12
    
  2. फिर एनकोफ के लिए -o allow_other का उपयोग किया

मैंने केवल इसे थोड़ा सा करने की कोशिश की है, लेकिन मेरे द्वारा अब तक दिखाई देने वाली पुनरुत्पादनीय विफलता का मामला काम कर रहा है।

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