उबंटू में उनके डिफ़ॉल्ट पर फ़ोल्डर की अनुमति कैसे रीसेट करें?


19

मैंने हाल ही में कमांड टाइप किया है

sudo chmod 777 -R /

उसके बाद कुछ चीजें पसंद हैं

sudo -i

सामान्य रूप से काम नहीं कर रहे हैं। इसलिए मैं सोच रहा हूं कि क्या कोई तरीका है जिससे मैं फ़ोल्डर की अनुमतियों को उनकी मूल स्थिति में रीसेट कर सकूं?


मुझे नहीं लगता कि लिनक्स पिछली अनुमति सेटिंग्स को याद करता है। एक नई फ़ाइल बनाने का प्रयास करें और देखें कि उसे क्या अनुमति सेटिंग्स मिलती हैं।
Thecoshman

ओह रुको, मैं देखता हूं कि तुमने वहां क्या किया। यह शायद फिर से स्थापित स्थिति है। बस अपने डेटा का बैकअप लें, नोट करें कि आपने कौन से एप्लिकेशन इंस्टॉल किए हैं। मज़े करो, क्यों नहीं 10.4 की कोशिश करो! (best name ever btw ... उस रेडियो चीज़ का क्या मतलब है?)
thecoshman

मैं आपको एक व्यक्ति को खोजने की हिम्मत करता हूं जिसने उस सटीक काम को नहीं किया है: डी यह एक बहुत ही मुश्किल स्थिति है। आप इसे ठीक कर सकते हैं, जोल्वी के उत्तर की कोशिश कर सकते हैं लेकिन इसमें समय और प्रयास लगेगा और इससे निराशा होगी। बस पुनः स्थापित करें और इसे प्राप्त करें। और sudo chmod का उपयोग कभी न करें जब तक आपको पता न हो कि आप क्या कर रहे हैं।
जैक मेयरज

जवाबों:


17

यह है संभव इस गन्दा स्थिति से वापस आने के लिए।

मैं फिर से उसी तरह के मुद्दे पर भागा (एक स्क्रिप्ट में कुछ बग मैं लिख रहा था) और इसे हल किया, लेकिन आपको कुछ विशेषज्ञ की मदद लेने की आवश्यकता है। बहुत सतर्क रहें!

सबसे पहले, मेरी स्थिति को हल करना आसान था, क्योंकि मेरे पास एक दोहरी बूट सिस्टम (उबंटू और मेरा पुराना फेडोरा इंस्टॉल) था, लेकिन सीडी / डीवीडी से ओएस चलाना, या यूएसबी कुंजी एक ही काम करना चाहिए।

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 नहीं है)। आपको मालिकों को स्थापित करने के बाद केवल अनुमतियाँ सेट करनी चाहिए । स्वामी की जानकारी के साथ फाइल अनुमति की पूरी जानकारी रखें।

आर:

  1. इसके लिए एक महत्वपूर्ण बात यह है कि आपके द्वारा उपयोग किए जा रहे संस्करण के साथ एक इंस्टाल डिस्क को रखना है, या कम से कम वर्तमान ubuntu संस्करण के साथ काम करना है।
  2. अब, मेरे पास यह जानकारी रखने के लिए, एक क्रोनजॉब में, हर दिन (सप्ताह हो सकता है) में यह कमांड है। यह अगली बार समाधान को आसान बना देगा, लेकिन निश्चित रूप से, जैसा कि मेरे पास अभी है, ऐसा फिर कभी नहीं होगा। ;-) कुछ इस तरह:

    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 / बिन / सुडो, आपको ऊपर दिए गए निष्पादन खंड के आदेश को स्वैप करना पड़ सकता है।


बस एक उत्कृष्ट जवाब। मैंने उबंटू
प्राइवेट

मेरे लिए बस एक सही समाधान!

2

सुडो के ठीक होने के बाद या बूट पर रिकवरी मोड का चयन करें

वर्बिस का उपयोग करके संपूर्ण सिस्टम को पुनर्प्राप्त करना संभव है जो सत्यनिष्ठा और अनुमतियों की पुष्टि करता है।

मैन पेज से:

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उस फाइल को रिपोर्ट नहीं करूंगा।
पुन:

0

हमेशा देखो कि तुम सूडो के रूप में क्या चलाते हो।

यह थ्रेड बताता है कि आप मैन्युअल रूप से कुछ अनुमतियाँ वापस सेट कर सकते हैं, और वहां एक स्क्रिप्ट इसके साथ मदद करती है, लेकिन फिर भी यह एक बड़ा काम है। अपने इंस्टॉल किए गए पैकेजों (चिह्नों) को सहेजने और OS को फिर से स्थापित करने के लिए चलने में युक्तियों का पालन करें, और अपने अनुप्रयोगों को वापस पाने के लिए अपने सहेजे गए पैकेज चिह्नों को लागू करें।


0

जहाँ तक मुझे पता है, केवल सिस्टम V संकुल और RPM फाइल अनुमति को सुधारने के लिए एक कमांड देते हैं। सिस्टम V (सोलारिस) पर यह pkgchk है, RPM के साथ यह rpm --setperms है।

दुर्भाग्य से, डेबियन / उबंटू पैकेज के लिए ऐसा कोई आदेश मौजूद नहीं है - लेकिन मैं यहां गलत हो सकता हूं।

लेकिन इन आदेशों की मदद से भी, अपने सिस्टम को वापस से एक स्थिति में लाना कोई तुच्छ कार्य नहीं है, और इसकी मरम्मत करके, आप आसानी से अपने सिस्टम को नया नुकसान पहुंचा सकते हैं - यदि आप सावधान नहीं हैं।

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

और आपको बहुत, बहुत सावधान रहना चाहिए, जब आप अपनी - क्षतिग्रस्त - बैकअप फ़ाइलों को पुनर्स्थापित करते हैं।

सौभाग्य!

पुनश्च: मैं बस सोच रहा हूं कि आप किस तरह की समस्या को हल करना चाहते थे?


0

वाह, आपने इसे मार दिया। यह मर चुका है! मशीन को रूट के रूप में (और जब से आपने इसे सक्षम किया है) लॉग इन करने का प्रयास करें, फिर उपयोगकर्ताओं को रूट की समूह सदस्यता बदलें। यह काम कर सकता है या नहीं हो सकता है क्योंकि मैंने पहले कभी इसकी कोशिश नहीं की है, लेकिन इसके लायक एक शॉट है।


0

आप किसी chmodऑपरेशन को पूर्ववत नहीं कर सकते ; कम से कम एक पिछली सेटिंग में वापस जाने के अर्थ में नहीं, जो इस स्थिति को बुलाता है। यकीनन, आप प्रत्येक फ़ाइल और डायरेक्टरी को अपने मूल मोड में वापस करके एक ऑपरेशन को पूर्ववत कर सकते हैं —– लेकिन वे सभी समान नहीं हैं; मूल मोड निर्धारित करना मुश्किल है (जैसा कि अन्य उत्तरों में चर्चा की गई है)।chmodchmod

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.