उपयोगकर्ता 'git' को sudo के माध्यम से 'www-data' के रूप में 'git pull' चलाने की अनुमति दें


12

मैं git को 'www-data' उपयोगकर्ता के रूप में 'git pull' चलाने की अनुमति देना चाहूंगा। जहाँ तक मैं समझती हूँ git ALL = (www-data) git पुल इन / etc / sudoers इसे बनाना चाहिए।

अफसोस की बात है कि मुझे इस लाइन के लिए एक सिंटेक्स त्रुटि मिलती है और 'www-data' में "-" के ठीक बाद सिंटैक्स हाइलाइट टूट जाता है

निषिद्ध '-' के बारे में / etc / sudoers उपयोगकर्ता नाम के बारे में जानकारी नहीं मिल सकती। कोई सुझाव?

जवाबों:


11

आपको 'git' कमांड के लिए पूर्ण पथ नाम का उपयोग करने की आवश्यकता है, निम्नलिखित पंक्तियाँ visudo में सिंटैक्स त्रुटि उत्पन्न नहीं करती हैं और ठीक काम करती हैं।

git ALL = (www-data) /usr/bin/git pull


6
@ और आप साझा नहीं किया?
अग्रुलेव

9

ध्यान दें कि मैं git यूजरनेम का उपयोग कर रहा हूं , इसलिए, यदि आप gitosis या किसी अन्य उपयोगकर्ता नाम का उपयोग कर रहे हैं, तो बस अपना नाम भरें!

रूट उपयोगकर्ता के साथ कंसोल में इस कमांड को निष्पादित करें:

visudo

"Vi" संपादक खोला जाएगा। इन पंक्तियों को जोड़ें:

Defaults:git    !authenticate
git ALL=(www-data) ALL

परिणाम में फ़ाइल (जिसे "vi" संपादक में "visudo" कहकर खोला जाता है) को इस तरह दिखना चाहिए:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults    env_reset
Defaults:git    !authenticate

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL) ALL
git ALL=(www-data) ALL


# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

फिर फ़ाइल को बचाने के लिए CTRL + O दबाएँ, फिर फ़ाइल नाम (bla bla bla) स्वीकार करने के लिए Enter दबाएँ, फिर "vi" संपादक को बंद करने के लिए CTRL + X दबाएँ।

देखा! अब git उपयोगकर्ता www-data उपयोगकर्ता के रूप में कमांड निष्पादित कर सकता है :

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