गलत तरीके से सेटमोड / 777. समस्याएं?


33

मैं चलाने की कोशिश कर रहा था chmod -R 777 ./लेकिन टाइपिंग पूरी कर ली chmod -R 777 /और 777अपनी पूरी मशीन पर सेट हो गया । क्या गलत हो सकता हैं? मेरे द्वारा यह कैसे किया जा सकता है?



सिस्टम में क्या गलत हो सकता है? क्या यह काम करना बंद कर देगा?
विन्निक्स

6
बेशक समस्याएं हैं। उदाहरण के लिए SSH विफल हो जाएगा।
ceving

2
SSH बाहर निकलता है अगर घर निर्देशिका विश्व पठनीय है। सब कुछ 777 पर सेट करना सब कुछ रूट के रूप में करने जैसा है।
ceving

3
Serverfault.com/questions/364677/why-is-chmod-r-777-destructive भी देखें जो गलत हो जाएगा के रूप में अधिक विवरण में चला जाता है।
गिलेस एसओ- बुराई को रोकना '

जवाबों:


46

समस्या का? हाँ, बहुत सारे। क्या इसे ठीक किया जा सकता है? ज़रूर। पुन: स्थापित करने से तेज़? शायद ऩही।

मेरी सिफारिश को पुनः स्थापित करना है। मौजूदा प्रणाली की एक बैकअप रखें, और पैकेज सूची और में फाइल की सामग्री को पुनर्स्थापित /etcऔर /var। के लिए /usr/local, आप संभवतः मैन्युअल रूप से अनुमतियाँ पुनर्स्थापित कर सकते हैं। के लिए /homeऔर /srv, आप बैकअप से अनुमतियों को बहाल करना होगा।

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

  • अब आपकी पासवर्ड सूची से छेड़छाड़ की गई है: स्थानीय उपयोगकर्ताओं को हैशेड पासवर्ड सूची तक पहुंच प्राप्त हुई है और वे उन्हें बाध्य करने का प्रयास कर सकते हैं। इसके बारे में अपने उपयोगकर्ताओं को सूचित करें।
  • सभी स्थानीय उपयोगकर्ताओं के लिए सभी निजी उपयोगकर्ता डेटा (ssh कुंजियाँ, संग्रहीत पासवर्ड, ई-मेल, जो भी अन्य उपयोगकर्ता गोपनीय समझ सकते हैं) को उजागर किया गया है। इसके बारे में अपने उपयोगकर्ताओं को सूचित करें।

यदि आप वास्तव में मरम्मत की कोशिश करना चाहते हैं (एक व्यावहारिक पुनर्प्राप्ति मार्ग की तुलना में अधिक सीखने का व्यायाम), तो पहले कुछ फ़ाइलों की अनुमतियों को पुनर्स्थापित करें। ध्यान दें कि जबकि अधिकांश फाइलें अब बहुत खुली हैं, कुछ आवश्यक सेतु बिट्स गायब हैं । यहां ऐसे कदम हैं जो आपको किसी और चीज से पहले उठाने चाहिए। ध्यान दें कि यह एक संपूर्ण सूची नहीं है, बस सिस्टम को बमुश्किल कार्यात्मक बनाने का प्रयास है।

chmod -R go-w /
chmod 440 /etc/sudoers
chmod 640 /etc/shadow /etc/gshadow
chmod 600 /etc/ssh/*_key /etc/ssh*key   # whichever matches
chmod 710 /etc/ssl/private /etc/cups/ssl
chmod 1777 /tmp /var/tmp /var/lock
chmod 4755 /bin/su /usr/bin/passwd /usr/bin/sudo /usr/bin/sudoedit
chmod 2755 /var/mail /var/spool/mail

फिर आपको हर जगह सभी अनुमतियों को पुनर्स्थापित करने की आवश्यकता होगी। /usrनिम्न फ़ाइलों के लिए , आप अपने वितरण के आधार पर निम्नलिखित कमांड में से किसी एक के साथ संकुल को पुनः स्थापित कर सकते हैं:

  • यदि आप एपीबी पर आधारित डेबियन, उबंटू या किसी अन्य वितरण का उपयोग कर रहे हैं, तो आप निष्पादित कर सकते हैं apt-get --reinstall install
  • यदि आप आर्क लिनक्स का उपयोग कर रहे हैं, तो आप pacman -S $(pacman -Qq --dbpath /newarch/var/lib/pacman) --root /newarch --dbpath /newarch/var/lib/pacmanयह मानकर चल सकते हैं कि आप लाइव सीडी में हैं और आपका आर्क स्थापित है /newarch

के तहत /etcऔर /var, कि काम नहीं करेगा फ़ाइलों के लिए , उनमें से कई के रूप में वे छोड़ दिया जाएगा: आप एक काम की स्थापना पर अनुमतियों को दोहराने के लिए होगा। के तहत फ़ाइलों के लिए /srvऔर /home, आपको बैकअप से वैसे भी पुनर्स्थापित करना होगा। जैसा कि आप देख सकते हैं, आप भी पुनर्स्थापित कर सकते हैं।


6
सहमत, जब तक आप एक विशेषज्ञ नहीं हैं, आपके पास पूर्ण पुनर्स्थापना करने या बैकअप से पुनर्स्थापित किए बिना इस स्थिति को सुधारने का लगभग कोई मौका नहीं है। सिस्टम को चालू छोड़ना बहुत खतरनाक है।
एरोमास्टर

3
यदि सिस्टम पर उपयोगकर्ता हैं, तो मुझे उन पर दया आती है।
जुरगेन ए। इरहार्ड

19

आप इसे पहली बार में नोटिस नहीं कर सकते हैं, लेकिन बहुत सारी चीजें गलत हो सकती हैं। मुख्य समस्या यह है कि पूरे सिस्टम के लिए संपूर्ण सुरक्षा मॉडल टूट गया है। यह एक त्वचा के बिना एक शरीर होने की तरह है, हवा में सभी अंग। यह संक्रमित होने के लिए बाध्य है क्योंकि यह उस तरह से कार्य करने के लिए नहीं है। यहां तक ​​कि अगर यह कुछ मिनट के लिए काम करने लगता है, तो आपको इसे साफ करने की आवश्यकता है।

सबसे अच्छा तरीका वास्तव में खरोंच से शुरू करना होगा। यह तरीका आपके जोखिम को बहुत कम कर देगा और आपको कम समय में क्लीनर परिणाम देगा। यदि आपके पास उचित बैकअप है, तो यह बहुत अच्छा अनुभव नहीं होना चाहिए।

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


लेकिन, सुरक्षा से अलग, आवेदनों के मामले में क्या गलत हो सकता है? क्या वे काम करना बंद कर देंगे? या यहां सुरक्षा सबसे बड़ी चिंता है?
विनीक्स

सुरक्षा सबसे बड़ी चिंता है, लेकिन बहुत सारे कार्यक्रम, विशेष रूप से पर्दे की चीजों के पीछे जैसे लॉगिंग डेमोंस, क्रोन, आदि विभिन्न कारणों से विफल हो जाएंगे, क्योंकि वे खुद को खतरनाक स्थिति में डालते हैं।
कालेब

क्रॉन सिर्फ 777 की वजह से काम करना बंद कर देगा?
विनीक्स

1
कई अलग-अलग क्रोन सिस्टम हैं, लेकिन किसी भी स्वाभिमानी क्रॉन को रूट के क्रॉन में नौकरियों का निष्पादन नहीं करना चाहिए, जब क्रॉस्टैब फ़ाइल वर्ल्ड राइट है! इसके अलावा मेल डेमन जो क्रोन नोटिफिकेशन को संभालता है, उसे अन्य कारणों से शिकायत करनी चाहिए।
कालेब

10

समाधान: मैंने CENTOS में यह परीक्षण किया

इस आदमी ने मेरी नौकरी बचा ली! (आपको किसी तरह पहुंचने की आवश्यकता है)

http://www.adminlinux.org/2009/07/how-to-restore-default-system.html

1) फ़ाइलों और निर्देशिकाओं पर uids और gids को रीसेट करने के लिए:

for u in $(rpm -qa); do rpm --setugids $u; done

2) फ़ाइलों और निर्देशिकाओं पर अनुमति के लिए

for p in $(rpm -qa); do rpm --setperms $p; done

फिर इन फ़ाइलों में मैन्युअल रूप से बदलाव करें:

# ll /etc/ssh/
# chmod 600 /etc/ssh/ssh_host_rsa_key
# chmod 600 /etc/ssh/ssh_host_dsa_key
# service sshd restart

5

कुछ सुरक्षा-सचेत कार्यक्रम शुरू नहीं होंगे यदि कुछ फ़ाइलों में अनुमतियों की "ढीली" भी है। जैसा कि @ceving ने कहा, sshdयह सबसे विशिष्ट है।

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

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


लेकिन, सुरक्षा से अलग, आवेदनों के मामले में क्या गलत हो सकता है? क्या वे काम करना बंद कर देंगे? या यहां सुरक्षा सबसे बड़ी चिंता है?
विनीक्स

यदि अनुमतियाँ बहुत ढीली हैं, तो उन अनुप्रयोगों के कुछ जोड़े जो शुरू करने से इनकार करते हैं। सुरक्षा सबसे बड़ी चिंता है। लेकिन यह सिस्टम स्टेबिलिटी भी है। यदि आप rm -rf /अपने सामान्य उपयोगकर्ता के रूप में करते हैं तो आप अपने सिस्टम को रोक देंगे।
LawrenceC

कौन से एप्लिकेशन काम करना बंद कर सकते हैं?
विन्निक्स

एसएसएच से? और क्या असफल हो सकता है? मुझे अब जरूरत है अगर मैं इस तरह के सिस्टम को थोड़ी देर के लिए छोड़ सकता हूं।
विन्निक्स

5
@Vinnycx: नहीं, तुम नहीं कर सकते। यह टूटा हुआ है। इसे ठीक करने के लिए आपको इसे प्राथमिकता बनाना चाहिए। अन्यथा आपकी सेवाओं को एक-एक करके और आपके डेटा खाने के लिए हैकर्स द्वारा विफल करने की अपेक्षा करें। छोड़ना / * @ 777 एक विकल्प नहीं है।
कालेब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.