सूडो अनुमति से इनकार किया लेकिन सु अनुदान की अनुमति दी


11

यह पहली घटना है जहाँ मेरे लिए su की आवश्यकता थी।

मैंने अपने लैपटॉप की स्क्रीन की चमक को बदलने के लिए / sys / devices / virtual / backlight / acpi_video0 / Bright में मान बदलने के बारे में एक लेख पढ़ा।

मैंने पहली बार ध्यान दिया कि जब मुझे $ sudo echo 10 > brightnessअनुमति मिलेगी तो मुझे इनकार कर दिया जाएगा।

मैंने र का उपयोग कर रूट किया और # echo 10 > brightnessअपनी चमक को लगभग तुरंत बदल दिया।

मेरे लिए अंतिम अजीब बात तब हुई जब मैंने कोशिश की # echo 20 > brightness(अधिकतम 15 फ़ाइल मूल्य मान रखता है) और मुझे लिखने में त्रुटि हुई

क्या कोई मुझे सूद और सु के बीच का अंतर समझा सकता है? लेखन त्रुटि को समझना एक अतिरिक्त बोनस होगा। किसी भी मदद, संकेत, और / या लिंक बहुत सराहना की जाएगी।


जवाबों:


17

पुनर्निर्देशन उस तरह से काम नहीं करता है। >कमांड पर अप्लाई करने पर वह रीडायरेक्ट इनवॉइसिंग यूजर (आप) के रूप में चलेगा और रूट के रूप में नहीं। इसके साथ करें tee:

echo 20 | sudo tee /sys/devices/virtual/backlight/acpi_video0/brightness

या कमांड को एक अलग विशेषाधिकार प्राप्त शेल में शामिल करके:

sudo bash -c "echo 20 > /sys/devices/virtual/backlight/acpi_video0/brightness"

टी टिप की तरह। यह मेरे 15 साल के यूनिक्स सिस्मडाइनिंग के दौरान नहीं हुआ था। जाहिर है जब देखा गया।
श्री शार्क

8

यह इस कारण से नहीं है sudo, यह आपके आदेश के संसाधित होने के तरीके के कारण है; मैंने वास्तव में इसे इस प्रश्न में समझाया । जब तुम करोगे

$ sudo echo 10 > brightness

शेल कमांड चलाता है sudo echo 10, जो echo 10रूट के रूप में चलता है। शेल तब खोलने की कोशिश करता है brightnessताकि यह आउटपुट echo 10को इसमें से रीडायरेक्ट कर सके , लेकिन यह नहीं हो सकता - आपका शेल आपकी अनुमतियों के साथ चल रहा है, रूट नहीं। मेरे द्वारा जुड़े सवाल पर जवाब के रूप में पोस्ट किए गए वर्कअराउंड हैं; एक अच्छा है:

$ echo 10 | sudo tee brightness

अब teeएक को खोलना है brightness, और चूंकि यह जड़ के रूप में चल रहा है इसलिए यह सफल होता है


3

su = s witch u ser: एक अलग उपयोगकर्ता के रूप में शेल का उपयोग करें

sudo = s uper u ser do : रूट यूजर के रूप में कमांड का पालन करते हैं

आपके मामले में निम्नलिखित आदेश केवल है echo 20, इसलिए केवल 20 प्रतिध्वनि को रूट के रूप में निष्पादित किया जाता है (जैसा कि पहले कहा गया था)। रीडायरेक्ट को फिर से निष्पादित किया जाता है।


2

आप /etc/sudoersफ़ाइल पर एक नज़र रखना चाहते हैं । यदि आपका / c वहां सूचीबद्ध नहीं है, तो आप नहीं कर पाएंगे sudo


सही है, लेकिन आपको उस मामले में एक विशिष्ट त्रुटि संदेश मिलेगा ("उपयोगकर्ता नाम sudoers फ़ाइल में नहीं है")
माइकल Mrozek
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.