Tôi tìm thấy cái này sau khi chạy locate git-shell-commands
mèo /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
Các chương trình mẫu có thể gọi thông qua git-shell. Đặt một thư mục có tên 'git-shell-Command' trong thư mục chính của người dùng có shell là git-shell. Sau đó, bất cứ ai đăng nhập như người dùng đó sẽ có thể chạy các tệp thực thi trong thư mục 'git-shell-Command'.
Các lệnh được cung cấp:
help: In ra tên của các lệnh có sẵn. Khi chạy tương tác, git-shell sẽ tự động chạy 'trợ giúp' khi khởi động, miễn là nó tồn tại.
list: Hiển thị bất kỳ kho lưu trữ trần nào có tên kết thúc bằng ".git" trong thư mục chính của người dùng. Không có kho git nào khác có thể nhìn thấy, mặc dù chúng có thể được sao chép thông qua git-shell. 'list' được thiết kế để giảm thiểu số lượng cuộc gọi đến git phải được thực hiện trong việc tìm các kho lưu trữ có sẵn; nếu thiết lập của bạn có kho lưu trữ bổ sung mà người dùng có thể khám phá được, bạn có thể muốn sửa đổi 'danh sách' cho phù hợp.
Vì vậy, tôi đã chạy các lệnh sau với quyền root:
cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
exit
Sau đó tôi đã có thể chạy như sau với tư cách là git
người dùng:
[me@svn ~]$ su git
Password:
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> help
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> list
git> exit
Bây giờ tôi không thấy danh sách và trợ giúp tốt là gì, nhưng đăng nhập đã hoạt động. :)
git-shell
là một vỏ HẠN CHẾ SỬ DỤNG cho các chức năng push / pull chỉ (ví dụgit push
,git fetch
vàgit pull
). Nó không có nghĩa là tương tác, vì vậy bạn không nên đăng nhập vào một vỏ tương tác. Bạn có thể làm cho nó tương tác một chút bằng cách thêm mộtgit-shell-commands
thư mục trong nhà của người dùng và liên kết một số nhị phân bên trong. Nhưng nó rất hạn chế (chẳng hạn như không có nhị phâncd
), vì vậy, một cách khác tốt hơn là đăng nhập với tư cách làroot
mộtsudo
người dùng có thể và làm gìsudo -u git -s
để có được mộtbash
vỏ đầy đủ theogit
người dùng.