मैंने हाल ही में कमांड टाइप किया है
sudo chmod 777 -R /
उसके बाद कुछ चीजें पसंद हैं
sudo -i
सामान्य रूप से काम नहीं कर रहे हैं। इसलिए मैं सोच रहा हूं कि क्या कोई तरीका है जिससे मैं फ़ोल्डर की अनुमतियों को उनकी मूल स्थिति में रीसेट कर सकूं?
मैंने हाल ही में कमांड टाइप किया है
sudo chmod 777 -R /
उसके बाद कुछ चीजें पसंद हैं
sudo -i
सामान्य रूप से काम नहीं कर रहे हैं। इसलिए मैं सोच रहा हूं कि क्या कोई तरीका है जिससे मैं फ़ोल्डर की अनुमतियों को उनकी मूल स्थिति में रीसेट कर सकूं?
जवाबों:
यह है संभव इस गन्दा स्थिति से वापस आने के लिए।
मैं फिर से उसी तरह के मुद्दे पर भागा (एक स्क्रिप्ट में कुछ बग मैं लिख रहा था) और इसे हल किया, लेकिन आपको कुछ विशेषज्ञ की मदद लेने की आवश्यकता है। बहुत सतर्क रहें!
सबसे पहले, मेरी स्थिति को हल करना आसान था, क्योंकि मेरे पास एक दोहरी बूट सिस्टम (उबंटू और मेरा पुराना फेडोरा इंस्टॉल) था, लेकिन सीडी / डीवीडी से ओएस चलाना, या यूएसबी कुंजी एक ही काम करना चाहिए।
MPOINT=/mount/ubuntu
पहले मैंने अपने फाइल सिस्टम को इस तरह से माउंट किया (माउंट पॉइंट बनाना न भूलें):
mount /dev/ubuntu/root $MPOINT
mount /dev/ubuntu/home $MPOINT/home
फिर मैंने निम्न कमांड को चलाया (मेरा मुद्दा केवल कुछ - महत्वपूर्ण - निर्देशिकाओं में) चल रहे सिस्टम से अनुमतियों को गन्दा एक पर कॉपी करने के लिए था (वास्तव में, मेरे मामले में, मैंने फेडोरा के तहत वर्चुअल बॉक्स में एक उबंटू सिस्टम स्थापित किया था और वहां अनुमति मिल गई):
find /etc /usr /bin /sbin -exec stat --format "chmod %a \"${MPOINT}%n\"" {} \; > /tmp/restoreperms.sh
और फिर मैंने रिस्टोरपर.श स्क्रिप्ट को चलाया।
मैं उबंटू पर फिर से बूट करने में सक्षम था।
Restoreperms.sh की सामग्री कुछ इस तरह होगी:
(...)
chmod 755 /mount/ubuntu//etc/ppp
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up
chmod 2750 /mount/ubuntu//etc/ppp/peers
chmod 640 /mount/ubuntu//etc/ppp/peers/provider
chmod 755 /mount/ubuntu//etc/ppp/ipv6-up.d
chmod 777 /mount/ubuntu//etc/ppp/resolv.conf
(...)
मैंने इसका परीक्षण नहीं किया, लेकिन इसे मालिकों और मालिक समूहों के लिए भी काम करना चाहिए। कुछ इस तरह:
find /etc /usr /bin -exec stat --format 'chown %U:%G ${MPOINT}%n' {} \; > /tmp/restoreperms.sh^
(...)
chown root:root /mount/ubuntu//etc/obex-data-server/imaging_capabilities.xml
chown root:root /mount/ubuntu//etc/obex-data-server/capability.xml
chown root:dip /mount/ubuntu//etc/ppp
chown root:root /mount/ubuntu//etc/ppp/ipv6-up
chown root:dip /mount/ubuntu//etc/ppp/peers
chown root:dip /mount/ubuntu//etc/ppp/peers/provider
chown root:root /mount/ubuntu//etc/ppp/ipv6-up.d
chown root:root /mount/ubuntu//etc/ppp/resolv.conf
(...)
बेशक, आपको यहां ध्यान रखना होगा, कि यूआईडी और जीआईडी दोनों प्रणालियों पर समान हैं, लेकिन सिस्टम से संबंधित उपयोगकर्ताओं और समूहों के लिए, यह एक मुद्दा नहीं होना चाहिए।
संपादित करें:
इसके अलावा, स्वामी को सेट करने से SGID और SUID झंडे खराब हो जाएंगे , जो अजीब समस्याओं का कारण बनता है (उदाहरण के लिए, आप sudo प्रदर्शन नहीं कर पाएंगे जब तक कि अनुमति 4755 नहीं है)। आपको मालिकों को स्थापित करने के बाद केवल अनुमतियाँ सेट करनी चाहिए । स्वामी की जानकारी के साथ फाइल अनुमति की पूरी जानकारी रखें।
आर:
अब, मेरे पास यह जानकारी रखने के लिए, एक क्रोनजॉब में, हर दिन (सप्ताह हो सकता है) में यह कमांड है। यह अगली बार समाधान को आसान बना देगा, लेकिन निश्चित रूप से, जैसा कि मेरे पास अभी है, ऐसा फिर कभी नहीं होगा। ;-) कुछ इस तरह:
0 12 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chmod %a %n" {} \; |/bin/bzip2 -c > /tmp/restore_chmod.$(/bin/date +%w).sh.bz2
0 13 * * * /usr/bin/find / -exec /usr/bin/stat --format="/bin/chown %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_chown.$(/bin/date +%w).sh.bz2
सही (संयुक्त) कमांड कुछ और है जैसे:
`/usr/bin/find / -exec /usr/bin/stat --format="[ ! -L {} ] && /bin/chmod %a %n" {} \; -exec /usr/bin/stat --format="/bin/chown -h %U:%G %n" {} \; |/bin/bzip2 -c > /tmp/restore_fileperms.$(/bin/date +%w).sh.bz2`
ध्यान दें कि फ़ाइल नाम (उदाहरण के लिए, स्थान के तहत) में कोष्ठक के लिए अतिरिक्त देखभाल की आवश्यकता हो सकती है और यह कि chmod द्वारा निर्धारित चुपचाप सेटगिड और सेटगिड बिट्स को चुपचाप रोक सकता है। बाद के मामले में, जो कहेंगे, बिन / सु / और usr / बिन / सुडो, आपको ऊपर दिए गए निष्पादन खंड के आदेश को स्वैप करना पड़ सकता है।
सुडो के ठीक होने के बाद या बूट पर रिकवरी मोड का चयन करें
वर्बिस का उपयोग करके संपूर्ण सिस्टम को पुनर्प्राप्त करना संभव है जो सत्यनिष्ठा और अनुमतियों की पुष्टि करता है।
मैन पेज से:
apt-get install --reinstall $(dpkg -S $(debsums -c) | cut -d : -f 1 | sort -u)
बदली हुई फाइलों के साथ पैकेज बहाल करता है
या एक विशिष्ट पथ तक सीमित जैसे /usr
:
apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/usr ) | cut -d : -f 1 | sort -u)
या पथ के कई सेट तक सीमित है जैसे: /sbin /etc /var
apt-get install --reinstall $(dpkg -S $(debsums -c | grep -e ^/etc -e ^/sbin -e ^/var ) | cut -d : -f 1 | sort -u)
chmod a-x /bin/ping
और debsums -c
उस फाइल को रिपोर्ट नहीं करूंगा।
हमेशा देखो कि तुम सूडो के रूप में क्या चलाते हो।
यह थ्रेड बताता है कि आप मैन्युअल रूप से कुछ अनुमतियाँ वापस सेट कर सकते हैं, और वहां एक स्क्रिप्ट इसके साथ मदद करती है, लेकिन फिर भी यह एक बड़ा काम है। अपने इंस्टॉल किए गए पैकेजों (चिह्नों) को सहेजने और OS को फिर से स्थापित करने के लिए चलने में युक्तियों का पालन करें, और अपने अनुप्रयोगों को वापस पाने के लिए अपने सहेजे गए पैकेज चिह्नों को लागू करें।
जहाँ तक मुझे पता है, केवल सिस्टम V संकुल और RPM फाइल अनुमति को सुधारने के लिए एक कमांड देते हैं। सिस्टम V (सोलारिस) पर यह pkgchk है, RPM के साथ यह rpm --setperms है।
दुर्भाग्य से, डेबियन / उबंटू पैकेज के लिए ऐसा कोई आदेश मौजूद नहीं है - लेकिन मैं यहां गलत हो सकता हूं।
लेकिन इन आदेशों की मदद से भी, अपने सिस्टम को वापस से एक स्थिति में लाना कोई तुच्छ कार्य नहीं है, और इसकी मरम्मत करके, आप आसानी से अपने सिस्टम को नया नुकसान पहुंचा सकते हैं - यदि आप सावधान नहीं हैं।
यूसुफ के अलावा अन्य ने कहा, आप पहले वाले नहीं हैं और आप इस तरह की कमांड दर्ज करने वाले अंतिम व्यक्ति नहीं होंगे। लेकिन यूनिक्स प्रणाली पर फ़ाइल अनुमतियों को 777 में बदलने के लिए अकेले विचार, एक मजबूत संकेत है कि आप इस तरह की प्रणाली के साथ बहुत अनुभवी नहीं हैं। इस स्थिति में सबसे अच्छा आप बैकअप कर सकते हैं कि आपको फिर से क्या ज़रूरत होगी (होम निर्देशिका, कॉन्फ़िगरेशन फ़ाइलें, मेल फाइलें?), और एक ताजा इंस्टॉल करने का प्रयास करें।
और आपको बहुत, बहुत सावधान रहना चाहिए, जब आप अपनी - क्षतिग्रस्त - बैकअप फ़ाइलों को पुनर्स्थापित करते हैं।
सौभाग्य!
पुनश्च: मैं बस सोच रहा हूं कि आप किस तरह की समस्या को हल करना चाहते थे?
आप किसी chmod
ऑपरेशन को पूर्ववत नहीं कर सकते ; कम से कम एक पिछली सेटिंग में वापस जाने के अर्थ में नहीं, जो इस स्थिति को बुलाता है। यकीनन, आप प्रत्येक फ़ाइल और डायरेक्टरी को अपने मूल मोड में वापस करके एक ऑपरेशन को पूर्ववत कर सकते हैं —– लेकिन वे सभी समान नहीं हैं; मूल मोड निर्धारित करना मुश्किल है (जैसा कि अन्य उत्तरों में चर्चा की गई है)।chmod
chmod