Назад | Перейти на главную страницу

Разрешить пользователю git запускать git pull как www-data через sudo

Я хотел бы разрешить git запускать git pull от имени пользователя www-data. Насколько я понимаю, git ALL = (www-data) git pull in / etc / sudoers должен это сделать.

К сожалению, я получаю синтаксическую ошибку для этой строки, а выделение синтаксиса visudo прерывается сразу после "-" в 'www-data'

Не могу найти информацию о запрещенных '-' в именах пользователей / etc / sudoers. Какие-нибудь советы?

Вам нужно использовать полный путь к команде 'git', следующие строки не вызывают синтаксических ошибок в visudo и работают нормально.

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

Обратите внимание, что я использую мерзавец имя пользователя, поэтому, если вы используете гитоз или любое другое имя пользователя, просто введите свое!

В консоли с корень пользователь выполняет эту команду:

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, чтобы сохранить файл, затем нажмите Enter, чтобы принять имя файла (bla bla bla), затем нажмите CTRL + X, чтобы закрыть редактор «vi».

Вуаля! Сейчас мерзавец пользователь может выполнять команды как www-data пользователь:

sudo -u www-data git pull origin master