Я хотел бы разрешить 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