मुझे स्क्रिप्ट प्रॉम्प्ट के बिना sudo चाहिए, स्क्रिप्ट के लिए। मुझसे कहां गलती हो गई?


9

मैं सुडो ग्रुप में हूँ सब ठीक है:

$ id
uid=1002(molot) gid=1002(molot) groups=1002(molot),27(sudo),33(www-data)

मुझे लगता है कि मेरे समुंदर में उपयुक्त सेटिंग है:

sudo    ALL=(ALL:ALL) NOPASSWD: ALL

और यह वहां की अंतिम अपूर्ण रेखा है।

लेकिन जब मैं करने की कोशिश करता git pullहूं, तो मुझे अपना पासवर्ड फिर से लिखने की इच्छा है:

$ sudo -u www-data git --git-dir /var/www/.git --work-tree /var/www pull "origin" master
[sudo] password for molot:

कंसोल में लॉग इन होने पर यह कोई समस्या नहीं है, लेकिन यह स्क्रिप्ट में अस्वीकार्य है। तो कैसे मैं sudo ग्रुप में किसी को भी बिना रिटेक पासवर्ड के www-data के रूप में खींचने की अनुमति दे सकता हूं?

जब मैंने अपना नाम सीधे रखा:

molot ALL=(ALL) NOPASSWD: ALL

इससे मेरा काम बनता है। लेकिन, जाहिर है, सुडियन समूह के मियां या अन्य उपयोगकर्ताओं के लिए नहीं। जहाँ तक मुझे मैनुअल समझ में आया है , उपयोगकर्ता नाम और समूह नाम दोनों को पहली फ़ाइल में काम करना चाहिए।


क्या आप नहीं कर सकते sudo -u www-data ./your_script.sh? स्क्रिप्ट का उद्देश्य क्या है?
जिंबोबामेगी

@jimbobmcgee यह एक गिट हुक है, इसलिए नहीं, मैं इसके लिए कुछ भी प्रस्तुत नहीं कर सकता। इसे उपयोगकर्ता द्वारा बुलाया जाता है, जिसने परिवर्तन में परिवर्तन किया और मुझे इसके आस-पास कोई वास्तविक रास्ता नहीं मिला।
मोलॉट

पहला फ़ील्ड (यदि sudoersफ़ाइल प्रारूप के बारे में मेरी त्वरित समझ सही है) चालान करने वाले उपयोगकर्ता का उपयोगकर्ता नाम है। क्या आपने वाइल्डकार्ड के साथ इसे बदलने की कोशिश की है *, या जो भी उपयोगकर्ता हुक हुक चलाता है?
एक CVn

@ माइकलकॉर्लिंग ने जैसा कि यहां कहा है कि उपयोगकर्ताओं और समूहों दोनों को पहले क्षेत्र में लिखना संभव है। *काम नहीं करता। मेरा नाम रखना सीधे मेरे लिए काम करता है ... लेकिन सुडोल समूह के अन्य उपयोगकर्ताओं के लिए नहीं, जाहिर है।
मोलॉट

@ माइकलकॉर्जिंग धन्यवाद, आपकी टिप्पणी ने मुझे विशेष वर्णों की तलाश करने के लिए बनाया और मुझे एक उत्तर खोजने की अनुमति दी: डी एडिट: स्वयं का उत्तर हटा दिया गया और उसी क्षण से 3 पार्टी उत्तर स्वीकार कर लिया।
मोहलोट

जवाबों:


19

लगता है कि आप अपने sudoers में एक चरित्र लापता संबंधित लाइन मिल गया है:

सूदो आल = (ALL: ALL) NOPASSWD: ALL

'sudo' नाम के उपयोगकर्ता से मेल खाता है। 'Sudo समूह के सभी उपयोगकर्ताओं के लिए' यह होना चाहिए:

% सुदो आल = (ALL: ALL) NOPASSWD: ALL

(शुरुआत में% चिन्ह पर ध्यान दें)।


1
आह क्या इतना है कि %में %wheelथा।
निखिल

1

sudo visudo

फिर, मान molotलेना आपका उपयोगकर्ता नाम है, फ़ाइल के अंत में जाएं और:

molot ALL=(ALL) NOPASSWD: ALL

यह काम करना चाहिए, लेकिन अगर ऐसा नहीं है, तो हमें तैनात रखें।


यह काम। मेरे लिए। लेकिन, जाहिर है, सूडो समूह में मरीन या किसी अन्य उपयोगकर्ता के लिए नहीं।
मोलॉट

फिर उपयोगकर्ता उपनाम ( User_Alias) बनाएँ , और रूट ( Runas_Alias) के रूप में विशिष्ट कमांड चलाने की अनुमति दें । मुझे नहीं पता कि आपका समूह कैसे सेट अप किया गया है, आप सूडोर्स विकी help.ubuntu.com/community/Sudoers की जांच कर सकते हैं । यह वास्तव में संक्षिप्त है। "उपयोगकर्ता विनिर्देश" अनुभाग की जांच करें, यह मदद करनी चाहिए।
जुगर्थ हडजर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.