Cho phép người dùng 'git' chạy 'git pull' dưới dạng 'dữ liệu www' qua sudo


12

Tôi muốn cho phép git chạy 'git pull' với tư cách là 'dữ liệu www' của người dùng. Theo như tôi hiểu thì git ALL = (www-data) git kéo vào / etc / sudoers nên làm cho nó.

Đáng buồn là tôi gặp lỗi Cú pháp cho dòng này và phần tô sáng Cú pháp hiển thị bị hỏng ngay sau dấu "-" trong 'dữ liệu www'

Không thể tìm thấy thông tin liên quan đến tên người dùng bị cấm '-' trong / etc / sudoers. Bất cứ lời khuyên?

Câu trả lời:


11

Bạn cần sử dụng tên đường dẫn đầy đủ cho lệnh 'git', các dòng sau không tạo ra lỗi cú pháp trong visudo và hoạt động tốt.

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


6
@Ben và bạn không chia sẻ?
agrublev

9

Lưu ý rằng tôi đang sử dụng tên người dùng git , vì vậy, nếu bạn đang sử dụng gitosis hoặc bất kỳ tên người dùng nào khác, chỉ cần điền vào tên của bạn!

Trong giao diện điều khiển với người dùng root thực hiện lệnh này:

visudo

Trình chỉnh sửa "vi" sẽ được mở. Thêm các dòng sau:

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

Kết quả là tệp (được mở trong trình chỉnh sửa "vi" bằng cách gọi "visudo") sẽ trông như thế này:

# /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

Sau đó nhấn CTRL + O để lưu tệp, sau đó nhấn Enter để chấp nhận tên tệp (bla bla bla), sau đó nhấn CTRL + X để đóng trình chỉnh sửa "vi".

Voila! Bây giờ người dùng git có thể thực thi các lệnh như người dùng dữ liệu www :

sudo -u www-data git pull origin master
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.