यह जानने के लिए कि मेरे उपयोगकर्ता नाम से रूट में / usr / स्थानीय के स्वामित्व का क्या कारण है


13

मैं homebrewकुछ वेब डेवलपमेंट ऐप के लिए पैकेज मैनेजर के रूप में उपयोग करता हूं । brewअप-टू-डेट रखने के लिए मैं update brewहर दो दिन चलता हूं और दौड़ता भी हूं brew doctor। आमतौर पर, यह ठीक है और brewमुझे बताता है कि मैं शराब बनाने के लिए तैयार हूं।

हालाँकि, अभी और बाद में, मुझे निम्नलिखित त्रुटि मिलती है:

चेतावनी: / usr / स्थानीय / आदि लेखन योग्य नहीं है।

ऐसा हो सकता है यदि आप "sudo make install" सॉफ्टवेयर का प्रबंधन करते हैं जो Homebrew द्वारा प्रबंधित नहीं किया गया है। यदि कोई सूत्र इस निर्देशिका में फ़ाइल लिखने का प्रयास करता है, तो लिंक चरण के दौरान इंस्टॉल विफल हो जाएगा।

आपको संभवतः chown/ usr / स्थानीय / आदि होना चाहिए

चेतावनी: / usr / स्थानीय निर्देशिका लिखने योग्य नहीं है। यहां तक ​​कि अगर यह निर्देशिका Homebrew स्थापित करते समय लिखने योग्य थी, तो अन्य सॉफ़्टवेयर इस निर्देशिका पर अनुमतियाँ बदल सकते हैं। Airfoil के "इंस्टेंटऑन" घटक के कुछ संस्करणों को ऐसा करने के लिए जाना जाता है।

आपको संभवतः अपने उपयोगकर्ता खाते के स्वामित्व / अनुमतियों / usr / स्थानीय को बदल देना चाहिए।

मेरे उपयोगकर्ता नाम पर अनुमतियों को रीसेट करना काफी आसान है। बाद में brewठीक लगता है।

लेकिन ऐसा होने का कारण क्या है?

क्या कोई लॉग है जो दिखाता है कि अनुमतियों को बदलने का कारण क्या है?


3
कोई लॉग नहीं है लेकिन ध्यान दें कि रोद के स्वामित्व वाले / usr / स्थानीय यूनिक्स मानक है और इसलिए इसमें कोई भी निर्माण की उम्मीद होगी। समाधान पैकेज प्रबंधक (होमब्रे) और मानक यूनिक्स संकलन दोनों के साथ एक निर्देशिका को नहीं
मिलाता है

3
सॉफ्टवेयर को उसी स्थान पर जोड़ना जैसे कि पैकेज मैन्जर का उपयोग एक बुरा विचार है, और इसलिए स्वामित्व और अनुमतियों को बदल रहा है /usr/local। लेकिन अगर आप जोर देते हैं तो आप उन पैकेजों make installका उपयोग किए बिना कर सकते sudoहैं जो आप खुद को स्थापित करते हैं।
fd0

1
OS X को अपग्रेड करना आमतौर पर / usr / स्थानीय स्वामित्व और अनुमतियों को रीसेट करता है।
mspasov

1
@ ओअर्स मैंने सवाल के बजाय होमब्रे से उद्धरण पढ़ा
user151019

1
आपके मैक पर और क्या स्थापित किया गया था (मैन्युअल रूप से या किसी अन्य पैकेज प्रबंधक के माध्यम से) जो डिफ़ॉल्ट रूप से स्थापित करने के लिए कॉन्फ़िगर किया गया था /usr/local?
डेन

जवाबों:


13

मेरे पास यह एक ही मुद्दा था, और यह सोफोस ऑटो-अपडेट को दोष देने के लिए निकला था। मुझे यह पता चल गया:sudo fs_usage | grep "usr/local"

इसमें थोड़ा समय लगा, लेकिन आखिरकार मैंने सोफोस की मदद से "इंस्टॉलेशन" डेमन को / usr / लोकल की अनुमतियों के साथ खिलवाड़ करते देखा।

मैं अभी भी इस व्यवहार के लिए एक उपयुक्त कार्य का पता लगाने की कोशिश कर रहा हूं।

संपादित करें: मेरा मानना ​​है कि सोफोस ने इस मुद्दे को तय किया है, इस उत्तर की टिप्पणियों में लिंक देखें। यह मेरे लिए कम से कम तय हो गया है!


4
: एक चर्चा यहां नहीं है community.sophos.com/products/free-antivirus-tools-for-desktops/... यह नवंबर 2015 में तय किया जाना चाहिए
JoeZuntz

@JoeZuntz अच्छा लगा! बहुत बढ़िया है कि वे वास्तव में एक तय कर रहे हैं।
अन्य

@ मदर्स इस जानकारी के लिए धन्यवाद। मैं 10.11.1 में अपग्रेड करने के बाद सब कुछ ठीक कर पाया और होमब्रेव को फिर से काम करने लगा, लेकिन अधिक बार नहीं, हर बार जब मैं एक काढ़ा अपग्रेड करने के लिए गया, तो अनुमतियाँ फिर से बदल गईं। यह मुझे परेशान कर रहा था कि किस सॉफ्टवेयर ने / usr / लोकल पर परमिट बदलते रहे।
टिम एक्स

@TimX हाँ, यह थोड़े बेकार है ... सौभाग्य से ऐसा लगता है कि सोफोस अगले सप्ताह के अंत में, 20 नवंबर को इसे पैच कर रहा है।
अन्य

4

बाहर मुड़ता है Filewave अपराधी है। Filewave एक सिस्टम मैनेजमेंट सॉफ्टवेयर है जिसका इस्तेमाल हमारे स्कूल सॉफ्टवेयर अपडेट को पुश करने के लिए करते हैं। इनपुट के लिए धन्यवाद।


2

मेरे पास एक मोटा विचार है कि अनुमति चोर कैसे मिलता है। यह आपकी समस्या का समाधान नहीं है, बल्कि कुछ प्रकार का समाधान है।

इस विशेष फोल्डर को देखने के लिए ऑटोमेटर में एक वॉचडॉग या हेज़ल (फ़ोल्डर क्रियाएं) लिखने के बारे में क्या है, लेकिन स्केल छवियों की तरह एक फ़ंक्शन को जोड़ने के बजाय आप बस एक शेलस्क्रिप्ट का उपयोग करते हैं जो कई शेल कमांड निष्पादित करता है:

  • यदि फ़ोल्डर को किसी भी तरह से बदल दिया जाता है, तो बस अनुमतियों को स्नैपशॉट दें और वर्तमान में एक्सेस करने की प्रक्रिया आईडी के साथ fuser <foldername>
  • फिर आप प्रक्रिया तालिका में प्रक्रिया आईडी ( ps auxwwwwww | grep <process id>) और अंत में देखते हैं
  • इन एकत्र किए गए informations के साथ अपने आप को एक ईमेल लिखें।

दुर्भाग्य से मैं कोई ऑटोमेटर साधु नहीं हूं, लेकिन मुझे पता चला कि Google द्वारा इस तरह की समस्या के लिए बहुत सारे समाधान हैं।


0

यदि आप टाइम मशीन का उपयोग करते हैं, तो आप Backups.backupdbटर्मिनल में खोज करके अनुमतियों को बदलकर अनुमानित समय पा सकते हैं । ls -ldटाइमस्टैम्प्ड फ़ोल्डरों में उपयोग करें , जैसे

ls -ld /Volumes/Backup/Backups.backupdb/Mac/2015-12-25-120000/Macintosh\ HD/usr/local 

जो मालिक और समूह की जानकारी दिखाएगा।

एक बार जब आपके पास तारीख बदल जाती है, तो आप यह पता लगा सकते हैं कि आपके सिस्टम में और क्या-क्या बदलाव हुए होंगे। एक सरल तकनीक खोजक की फ़ाइल का उपयोग करना है> एक Last modified dateमानदंड खोजें और जोड़ें । अन्य अच्छे उपकरण findऔर mdfindटर्मिनल में हैं।


-1

यह आपके सिस्टम को अपडेट करने का एक साइड इफेक्ट है; OS X संभवत: अद्यतन प्रक्रिया के दौरान कुछ /-बोर्ड की अनुमति "मरम्मत" करता है जैसे कि रूट-स्वामित्व वाले फ़ोल्डर में / usr / लोकल नेस्टेड है।


AFAICT, El Capitan में अपग्रेड करना मेरे लिए समस्या का कारण बना
Giuseppe

-3

क्या आपने Disk Utilityचयन किया है Macintosh HDतो चलाएं Verify Disk Permissionऔर Repair Disk Permissionयदि आवश्यक हो, तो मैन्युअल रूप से करने के बजाय?

अब यह आपके मुद्दे पर ठीक नहीं होना चाहिए, लेकिन यह एक अच्छा 'ज्ञात' शुरुआती बिंदु है जब होम-ब्रूफ़ अनुमतियों को बदलता है। यदि आप किस्मत में हैं तो यह अंतर्निहित मुद्दे को दिखा सकता है।

इसके अलावा new update -vउत्पादन वर्बोज़ अधिक, प्लस वर्ष लॉग के लिए यहाँ हैं ~/Library/Logs/Homebrewअनुसार कहाँ homebrew लॉग करता है?


2
Disk Utility/usr/localइस निर्देशिका के Yosemite के एक नए इंस्टालेशन पर मौजूद होने के बाद से यह सत्यापित या अनुमतियों की मरम्मत नहीं करेगा ।
दान

मैं इस परिकल्पना को पूरी तरह से Yosemite पर जाँचता हूँ ताकि /usr/localमेरे लिए एक नया निर्माण हो, और चल सके DU। लॉग के /usr/localभीतर कोई भी नहीं है DU। और /usr/localअब भी मेरा है।
डेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.