사용자 'git'이 sudo를 통해 'git pull'을 'www-data'로 실행하도록 허용


12

git이 사용자 'www-data'로 'git pull'을 실행하도록하고 싶습니다. 내가 이해하는 한 git ALL = (www-data) git pull in / etc / sudoers가 그것을 만들어야합니다.

슬프게도이 줄에 대한 구문 오류가 발생하고 'www-data'에서 "-"바로 뒤에 visudo 구문 강조 표시가 중단됩니다.

/ etc / sudoers 사용자 이름에서 금지 된 '-'에 관한 정보를 찾을 수 없습니다. 팁이 있습니까?

답변:


11

'git'명령에 전체 경로 이름을 사용해야합니다. 다음 행은 구문 오류가 발생하지 않으며 정상적으로 작동합니다.

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


6
@Ben과 당신은 공유하지 않았다?
agrublev

9

공지 사항 내가 사용하는 것이 자식 당신이 사용하는 경우 사용자 이름을, 그래서 gitosis 또는 다른 사용자 이름을, 당신의의를 입력!

루트 사용자가있는 콘솔에서 다음 명령을 실행하십시오.

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 user는 www-data user 로 명령을 실행할 수 있습니다 .

sudo -u www-data git pull origin master
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.