.rpm का खुला विफल: अनुमति से इनकार किया


10

जब भी मैंने कुछ .rpm को डाउनलोड करने का प्रयास किया है, मैं डाउनलोड कर रहा हूँ:

> sudo rpm -i something.rpm
error: open of something.rpm failed: Permission denied

ऐसा लगता है कि आरपीएम का विकल्प कोई मायने नहीं रखता। मैंने .rpm (777) को पहले से चिन्हित किया है, लेकिन इससे कोई फर्क नहीं पड़ता। मैं क्या खो रहा हूँ? उपयोग rpm -i -vकरने से कोई अतिरिक्त जानकारी नहीं मिलती है।

सिस्टम RHEL6 64-बिट है।


क्या आप sudo -l
Not Now

SELinux, शायद?
derobert

जवाबों:


11

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

यदि यह समस्या है, तो आपको rpm फ़ाइल और निर्देशिका दोनों को रूट तक पहुँच योग्य फ़ाइल बनाने की आवश्यकता है। इसका मतलब है कि उन्हें उपयोगकर्ता के लिए सुलभ बनाना nobody, और आमतौर पर ऐसा करने का एकमात्र तरीका फ़ाइल और निर्देशिका को विश्व-पठनीय बनाना है। अधिक सटीक रूप से, न्यूनतम अनुमतियाँ हैं

chmod a+x .
chmod a+r something.rpm

वैकल्पिक रूप से, rpm फ़ाइल को स्थानीय निर्देशिका में ले जाएं।

mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm

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