जवाबों:
संक्षेप में: नहीं।
आपको बैकअप से पुनर्स्थापित करना होगा। (कुछ बैकअप टूल में केवल अनुमति को पुनर्स्थापित करने के लिए विकल्प हो सकते हैं, अन्य अपनी अनुमतियों के साथ बैक-अप फ़ाइलों को सूचीबद्ध कर सकते हैं और आप उनका सिस्टम ठीक करने के लिए उपयोग कर सकते हैं।)
यदि आपके पास बैकअप नहीं है, तो आपको मैन्युअल रूप से सभी को ठीक करना होगा।
sudo chown -R user:user /
, यह संभावना है कि सिस्टम इतनी बुरी तरह से hosed है कि आप बैकअप से पुनर्स्थापित नहीं कर सकते ।
chown
वर्णित कर लेते हैं , तो संभावना है कि आप स्क्रैच से पूरे सिस्टम को स्थापित करने से पहले कुछ भी करने में सक्षम नहीं होंगे ; सिस्टम में root
खाता भी नहीं है , और sudo
काम नहीं करेगा। यह संभवतः एकल-उपयोगकर्ता शेल में बूट करने का प्रयास करने के लायक है, लेकिन यह काम करने की उम्मीद नहीं करता है।
sudo
या तब भी su
कार्य करना जारी रहेगा जब इसकी सभी प्रासंगिक फाइलें user
एक अलग मामला है (शायद इसलिए नहीं क्योंकि अन्य चीजों के बीच निर्गमन पर SUID बिट चला जाएगा)।
केवल तभी जब आप अपनी /
निर्देशिका के तहत हर फ़ाइल और निर्देशिका के उपयोगकर्ता और समूह के स्वामित्व को जानते हैं ।
फिर भी, आपने पहले ही क्रिटिकल सिस्टम फाइल्स के स्वामित्व को रोक दिया है, जिसे sudo
कमांड सहित रूट द्वारा स्वामित्व की आवश्यकता है । आपको शायद किसी अन्य सिस्टम पर हार्ड ड्राइव को माउंट करने की आवश्यकता होगी - और ध्यान रखें कि अन्य सिस्टम की संभावना एक ही यूआईडी और जीआईडी मैपिंग के रूप में नहीं होगी, जैसा कि आप सिर्फ क्लॉबर्डेड हैं।
यदि आप कर सकते हैं तो संपूर्ण हार्ड ड्राइव की एक प्रति बनाएं, फिर अपने ऑपरेटिंग सिस्टम को फिर से इंस्टॉल करें। एक बार जब आप ऐसा कर लेते हैं, तो आप नए मिटाए गए सिस्टम पर फ़ाइलों को कॉपी करने और उनके मालिकों को पुनर्स्थापित करने का प्रयास कर सकते हैं। आप शायद मान सकते हैं (हालांकि 100% मज़बूती से नहीं) कि सब कुछ /home/foo
उपयोगकर्ता के स्वामित्व में है foo
, और इसके तहत प्रत्येक मेल स्पूल फ़ाइल /var/mail
उपयुक्त उपयोगकर्ता (यदि आपके पास सिस्टम पर ई-मेल है) के स्वामित्व में है। /home
सिस्टम के साथ आपने जो किया है, उसके आधार पर आप अधिकांश फ़ाइलों को पुनर्स्थापित किए बिना दूर हो सकते हैं ।
और फिर हिट sudo
होने से पहले आपके द्वारा चलाए जा रहे किसी भी कमांड को दोबारा जांचने की आदत डालना शुरू करें Enter।
यदि आपका डिस्ट्रो आरपीएम आधारित है, तो आप केवल आरपीएम पैकेजों द्वारा स्थापित फ़ाइलों को पुनर्स्थापित कर सकते हैं।
सभी पैकेज अनुमतियां बहाल करने के लिए:
rpm --setperms -a
सभी पैकेज स्वामी (उपयोगकर्ता / समूह) को पुनर्स्थापित करने के लिए:
rpm --setugids -a
यदि -a नहीं चलता है, तो आप बैश लूप निष्पादित कर सकते हैं:
अनुमतियों के लिए:
for x in $(rpm -qa); do rpm --setperms $x; done
मालिक के लिए:
for x in $(rpm -qa); do rpm --setugids $x; done
: से निकाले http://www.sysadmit.com/2016/10/linux-restaurar-permisos-de-un-paquete.html
आप वर्तमान संस्करणों को स्टोर कर सकते हैं और फिर -v विकल्प का उपयोग करके वापस लौट सकते हैं।
chown -R nobody:nobody -v /tmp/some_file > /tmp/chown.log
cat /tmp/chown.log
सामग्री होगी:
changed ownership of `/tmp/some_file' from me:users to nobody:nobody
अपनी पसंदीदा स्क्रिप्टिंग भाषा और नियमित अभिव्यक्तियों का उपयोग करके, आप उन्हें (यदि आपको चाहिए) श्रद्धा की दर्दनाक प्रक्रिया को निष्पादित कर सकते हैं।
मैं दृढ़ता से अनुशंसा करता हूं कि आप / आदि / छाया या किसी भी अन्य महत्वपूर्ण फ़ाइल को उजागर / पर एक पुनरावर्ती चांस न करें ।
sudo chown -R user:user ..
का यहाँ उसी तरह प्रभाव हो सकता है जैसा कि आप यहाँ उल्लेखित करते हैं यदि आप फ़ाइल सिस्टम के मूल से एक स्तर नीचे हैं। कुछ इस तरह की कोशिश मत करो।