2012-12-07 14 views
130

इसका क्या अर्थ है और मैं इसे कैसे ठीक कर सकता हूं?zsh compinit: असुरक्षित निर्देशिका

zsh compinit: insecure directories, run compaudit for list. 
Ignore insecure directories and continue [y] or abort compinit [n]? 

compaudit रिटर्न चल रहा है इस प्रकार है:

There are insecure directories: 
/usr/local/share/zsh/site-functions 
+1

किसी को भी जानता कि क्यों यह चेतावनी तब होता है "कर्मचारी" समूह है? – Blaszard

उत्तर

202

यह मेरे लिए यह तय:

$ cd /usr/local/share/zsh 
$ sudo chmod -R 755 ./site-functions 

क्रेडिट: a post on zsh mailing list


संपादित करें: टिप्पणियों में @biocyberman द्वारा इंगित किया गया। आप site-functions के मालिक भी अपडेट करने के आवश्यकता हो सकती है:

$ sudo chown -R root:root ./site-functions 

मेरी मशीन (OSX 10.9) पर, मैं लेकिन YMMV ऐसा करने की जरूरत नहीं है।

EDIT2: पर OSX 10.11, केवल इस काम किया:

$ cd /usr/local/share/ 
$ sudo chmod -R 755 zsh 
$ sudo chown -R root:staff zsh 

इसके अलावा उपयोगकर्ता: कर्मचारियों पर OSX सही डिफ़ॉल्ट अनुमति है।

+0

क्या होगा यदि आपके पास रूट नहीं है –

+1

@kirill_igum "no root" से आपका मतलब "कोई रूट _access_" नहीं है? यदि ऐसा है, तो आपको फ़ाइलों को उस फ़ोल्डर में कॉपी करना चाहिए जिस पर आप पहुंच चुके हैं, नए फ़ोल्डर का उपयोग करने के लिए अपने '.zshenv' और '.zshrc' को ठीक करें और जैसा कि मैंने पोस्ट किया है, उसी फ़ोल्डर पर वही' chmod' करें फ़ोल्डर। – chakrit

+0

@kirill_igum मेलिंग सूची संदेश को मैंने लिंक किया है। – chakrit

17

मुझे एक ही चेतावनी मिली जब मैं sudo -i रूट खोल शुरू कर रहा था, @ चक्रित का समाधान मेरे लिए काम नहीं करता था।

लेकिन मुझे -ucompinit कार्यों का स्विच मिला, उदाहरण के लिए अपने .zshrc/zshenv में या जहां compinit

compinit -u 

नायब कहा जाता है: उत्पादन प्रणाली के लिए अनुशंसित नहीं

भी देखें http://zsh.sourceforge.net/Doc/Release/Completion-System.html#Initialization

+0

वह एकमात्र दक्षिण था जो मेरे लिए काम करता था। मैं विंडोज 10 – denns

132
compaudit | xargs chmod g-w 

चाल क्या करेंगे, देखने http://www.wezm.net/technical/2008/09/zsh-cygwin-and-insecure-directories/

+4

पर लिनक्स उपप्रणाली पर compinit के साथ zsh का उपयोग करने की कोशिश कर रहा था यह है! समूह को लिखने की अनुमति को हटा रहा है। धन्यवाद – glarrain

+5

बहुत बेहतर उत्तर, यह ध्यान दिया जाना चाहिए कि 'compaudit' का उपयोग इन समस्याओं की निदान करने के साथ-साथ उन्हें ठीक करने के लिए भी किया जा सकता है। – Wolph

+3

ध्यान दें कि आपको फ़ाइलों के मालिक को रूट में भी बदलना पड़ सकता है - मुझे यह करना था: 'compaudit | xargs chown root' –

3

स्वीकृत उत्तर मैकोज़ सिएरा (10.12.1) पर मेरे लिए काम नहीं करता था। यह/usr/स्थानीय

cd /usr/local 
sudo chown -R <your-username>:<your-group-name> * 

नोट से पुनरावर्ती करना था: आप id -g

+0

मैंने इसे सिएरा पर भी नहीं किया था, हालांकि एक बहुउद्देशीय प्रणाली पर सही उपयोगकर्ता/समूह रूट होना चाहिए: कर्मचारी –

2

इन दो पंक्तियों को मेरे लिए तय कर दी है साथ whoami साथ अपने उपयोगकर्ता नाम और अपने समूह मिल सकती है।

sudo chown -R _user_:root /usr/local/share/zsh 

sudo chown -R _user_:root /usr/local/share/zsh/* 
+0

मेरे लिए काम करें! मैं अपने पीसी पर एक नेटवर्क अकाउंट का उपयोग करता हूं - उबुतुन 16.04 'सुडो चाउन -आर $ (व्हामी): रूट/यूएसआर/लोकल/शेयर/जेएसएच ' सुडो चाउन -आर $ (व्हामी): रूट/यूएसआर/लोकल/शेयर/zsh/* ' – hoangdv

12

अधिकतर उत्तर एक समाधान के साथ आते हैं, लेकिन यह उल्लेख नहीं करते कि यह चेतावनी क्यों होती है।

सुरक्षा कारणों से भी compinit अगर पूरा होने सिस्टम रूट द्वारा या निर्देशिकाएं विश्व या समूह- हैं में मौजूदा उपयोगकर्ता, या फ़ाइलों के स्वामित्व में नहीं फ़ाइलों का प्रयोग करेंगे की जाँच करता है: यहाँ ZSH के compinit से एक अंश है लिखने योग्य या जिनके पास रूट या वर्तमान उपयोगकर्ता के स्वामित्व नहीं हैं।अगर ऐसी फाइलें या निर्देशिकाएं पाई जाती हैं, तो कंपिनिट पूछेगा कि पूर्णता प्रणाली का वास्तव में उपयोग किया जाना चाहिए या नहीं। इन परीक्षणों से बचने के लिए और सभी फ़ाइलों को बिना पूछे इस्तेमाल किया जा सकता है, विकल्प -u का उपयोग करें, और सभी असुरक्षित फ़ाइलों और निर्देशिकाओं को चुपचाप अनदेखा करने के लिए विकल्प -i का उपयोग करें। जब सी-विकल्प दिया जाता है तो यह सुरक्षा जांच पूरी तरह से छोड़ दी जाती है।

compaudit | xargs chown -R "$(whoami)" 
:

  • कारण में सभी निर्देशिकाओं/उपनिर्देशिका/फ़ाइलों के मालिक के रूप में वर्तमान उपयोगकर्ता की स्थापना:

इसलिए, समाधान एक (या सभी) निम्न में से फिक्सिंग का तात्पर्य

  • कारण में फ़ाइलों के लिए समूह/दूसरों के लिए लिखने की अनुमति को हटाने:

    compaudit | xargs chmod go-w 
    
  • एक और दृष्टिकोण

    compinit -u 
    

    का उपयोग करके इन चेकों को छोड़ने के लिए होगा, लेकिन मैं वास्तव में इस ओर संकेत नहीं करते, एक गलीचा के तहत समस्याओं छुपा के रूप में केवल अल्पावधि में समस्याओं को हल करती है। sudo chown -R $(whoami):staff /usr/local

    3

    MacOS सिएरा पर आप को चलाने के लिए की जरूरत है।

    sudo chmod -R 755 /usr/local/share/zsh/site-functions 
    
    0

    मैं आदेश के बाद इस्तेमाल किया त्रुटि दूर करने के लिए:

    0

    मैं शेयर के अंदर अन्य निर्देशिकाओं मेरे मामले में

    sudo chown root:staff -R /usr/local/share/zsh 
    

    करके यह तय/भी सौंपा

    +0

    प्रश्न [सहायता] में परिभाषित स्टैक ओवरफ़्लो के लिए विषय पर नहीं है। कृपया ऐसे प्रश्नों का उत्तर न दें; इसके बजाय, आपको उन्हें ध्यान के लिए ध्वजांकित करना चाहिए और वे बंद हो जाएंगे या उचित रूप से माइग्रेट किए जाएंगे। –