web-dev-qa-db-ja.com

ユーザー「git」がsudoを介して「www-data」として「git pull」を実行できるようにする

Gitがユーザー「www-data」として「git pull」を実行できるようにしたいと思います。 git ALL =(www-data)を理解している限り、/ etc/sudoersでgit pullを実行する必要があります。

悲しいことに、この行で構文エラーが発生し、「www-data」の「-」の直後にvisudo構文ハイライトが壊れます。

/ etc/sudoersユーザー名に禁止されている「-」に関する情報が見つかりません。任意のヒント?

12
Ben

'git'コマンドにはフルパス名を使用する必要があります。次の行はvisudoで構文エラーを生成せず、正常に動作します。

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

11
AlexD

私はgitユーザー名を使用していることに注意してください。したがって、gitosisまたは他のユーザー名を使用している場合は、自分の名前を入力してください!

rootユーザーがいるコンソールで、次のコマンドを実行します。

visudo

「vi」エディターが開きます。次の行を追加します。

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

その結果、ファイル(「visudo」を呼び出すことによって「vi」エディターで開かれる)は次のようになります。

# /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を押してファイルを保存し、Enterキーを押してファイル名を受け入れ(bla bla bla)、CTRL + Xを押して「vi」エディタを閉じます。

出来上がり! gitユーザーはwww-dataユーザーとしてコマンドを実行できます:

Sudo -u www-data git pull Origin master
9
Taai