मैं चलाने की कोशिश कर रहा था chmod -R 777 ./
लेकिन टाइपिंग पूरी कर ली chmod -R 777 /
और 777
अपनी पूरी मशीन पर सेट हो गया । क्या गलत हो सकता हैं? मेरे द्वारा यह कैसे किया जा सकता है?
मैं चलाने की कोशिश कर रहा था chmod -R 777 ./
लेकिन टाइपिंग पूरी कर ली chmod -R 777 /
और 777
अपनी पूरी मशीन पर सेट हो गया । क्या गलत हो सकता हैं? मेरे द्वारा यह कैसे किया जा सकता है?
जवाबों:
समस्या का? हाँ, बहुत सारे। क्या इसे ठीक किया जा सकता है? ज़रूर। पुन: स्थापित करने से तेज़? शायद ऩही।
मेरी सिफारिश को पुनः स्थापित करना है। मौजूदा प्रणाली की एक बैकअप रखें, और पैकेज सूची और में फाइल की सामग्री को पुनर्स्थापित /etc
और /var
। के लिए /usr/local
, आप संभवतः मैन्युअल रूप से अनुमतियाँ पुनर्स्थापित कर सकते हैं। के लिए /home
और /srv
, आप बैकअप से अनुमतियों को बहाल करना होगा।
यदि यह कई स्थानीय उपयोगकर्ताओं के साथ एक प्रणाली है, तो ध्यान दें कि कुछ फ़ाइलों को विश्व-पठनीय बनाने से कुछ बातें सामने आई हैं जो गोपनीय रहनी चाहिए थीं।
यदि आप वास्तव में मरम्मत की कोशिश करना चाहते हैं (एक व्यावहारिक पुनर्प्राप्ति मार्ग की तुलना में अधिक सीखने का व्यायाम), तो पहले कुछ फ़ाइलों की अनुमतियों को पुनर्स्थापित करें। ध्यान दें कि जबकि अधिकांश फाइलें अब बहुत खुली हैं, कुछ आवश्यक सेतु बिट्स गायब हैं । यहां ऐसे कदम हैं जो आपको किसी और चीज से पहले उठाने चाहिए। ध्यान दें कि यह एक संपूर्ण सूची नहीं है, बस सिस्टम को बमुश्किल कार्यात्मक बनाने का प्रयास है।
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
, आपको बैकअप से वैसे भी पुनर्स्थापित करना होगा। जैसा कि आप देख सकते हैं, आप भी पुनर्स्थापित कर सकते हैं।
आप इसे पहली बार में नोटिस नहीं कर सकते हैं, लेकिन बहुत सारी चीजें गलत हो सकती हैं। मुख्य समस्या यह है कि पूरे सिस्टम के लिए संपूर्ण सुरक्षा मॉडल टूट गया है। यह एक त्वचा के बिना एक शरीर होने की तरह है, हवा में सभी अंग। यह संक्रमित होने के लिए बाध्य है क्योंकि यह उस तरह से कार्य करने के लिए नहीं है। यहां तक कि अगर यह कुछ मिनट के लिए काम करने लगता है, तो आपको इसे साफ करने की आवश्यकता है।
सबसे अच्छा तरीका वास्तव में खरोंच से शुरू करना होगा। यह तरीका आपके जोखिम को बहुत कम कर देगा और आपको कम समय में क्लीनर परिणाम देगा। यदि आपके पास उचित बैकअप है, तो यह बहुत अच्छा अनुभव नहीं होना चाहिए।
यदि आप इसे साफ करने की कोशिश करते हैं, तो प्राथमिक तरीका आपके डिस्ट्रो के संकुल प्रबंधक को यह बताने के लिए होगा कि सिस्टम पर हर किसी को पुनः स्थापित करने के लिए, विन्यास फाइल को अधिलेखित करना। फिर उनके माध्यम से देखने के लिए जो कुछ भी सत्यापित प्रणाली है उसका उपयोग करें और सुनिश्चित करें कि उनमें से कोई भी सामान्य से बाहर की अनुमति वाली फ़ाइलों के रूप में ध्वजांकित नहीं है। इसके बाद, यूज़र होम डाइरेक्टरीज़ जैसी चीज़ों के ज़रिए काम करें और सब कुछ को सेंस परमिशन एन मस्से पर रीसेट करें, फिर उन कुछ चीज़ों के ज़रिए काम करें जिनमें स्पेशल परमिशन होनी चाहिए (जैसे ssh की फ़ाइल्स)। अंत में, 777 के रूप में चिह्नित सब कुछ के लिए एक पूर्ण प्रणाली ढूंढें और सूची से गुजरें (यह छोटा होना चाहिए यदि आपने अन्य चरणों को अच्छी तरह से किया है) और उनके माध्यम से एक-एक करके काम करना सुनिश्चित करें कि वे जिस तरह से हैं।
समाधान: मैंने 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
कुछ सुरक्षा-सचेत कार्यक्रम शुरू नहीं होंगे यदि कुछ फ़ाइलों में अनुमतियों की "ढीली" भी है। जैसा कि @ceving ने कहा, sshd
यह सबसे विशिष्ट है।
मुख्य बात जो गलत हो सकती है, अब कोई भी उपयोगकर्ता आपके सिस्टम पर किसी भी फ़ाइल को खोल सकता है, पढ़ सकता है और लिख सकता है। यह खराब होने के दो कारण हैं: ए) यदि कोई दुर्भावनापूर्ण उपयोगकर्ता किसी शोषण या ग़लतफ़हमी के माध्यम से आपके सिस्टम पर नियंत्रण हासिल करता है, तो वह आपके सिस्टम पर अभी कुछ भी संशोधित कर सकता है, और बी) आप चाहे तो कुछ भी हटा सकते हैं आप जड़ नहीं हैं, इसलिए आपने रूट के रूप में नहीं चलने के अधिकांश सुरक्षा को नकार दिया है।
यदि आपने पहले से अनुमति नहीं ली है तो आप थोड़ी स्थिति में हैं। आप एक ऐसी स्क्रिप्ट बनाने में सक्षम हो सकते हैं जो नए सिरे से इंस्टॉल किए गए सिस्टम से अनुमतियों की सूची "लाती है" और फिर उन सभी को आपके सिस्टम पर "लागू करें"। हालांकि मेरे पास ऐसी कोई स्क्रिप्ट नहीं है।
rm -rf /
अपने सामान्य उपयोगकर्ता के रूप में करते हैं तो आप अपने सिस्टम को रोक देंगे।