Я нашел это после запуска locate git-shell-commands
cat /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
Примеры программ, вызываемых через git-shell. Поместите каталог с именем 'git-shell-команды' в домашний каталог пользователя, оболочкой которого является git-shell. Тогда любой, кто войдет в систему под этим пользователем, сможет запускать исполняемые файлы в каталоге 'git-shell-commands'.
Предоставленные команды:
help: Распечатывает имена доступных команд. При интерактивном запуске git-shell автоматически запускает «справку» при запуске, если она существует.
list: Отображает любой пустой репозиторий, имя которого заканчивается на «.git» в домашнем каталоге пользователя. Других репозиториев git не видно, хотя они могут быть клонированы через git-shell. «list» предназначен для минимизации количества обращений к git, которые необходимо выполнить при поиске доступных репозиториев; если в вашей настройке есть дополнительные репозитории, которые должны быть обнаружены пользователем, вы можете изменить «список» соответствующим образом.
Поэтому я выполнил следующие команды от имени 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
Затем я смог запустить следующее как git
пользователь:
[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
Сейчас я не вижу, что такое хорошая справка и список, но логин сработал. :)
git-shell
является ограниченной оболочки , которые будут использоваться для функциональности толчок / тянуть только (то естьgit push
,git fetch
иgit pull
). Он не должен быть интерактивным, поэтому не следует входить в интерактивную оболочку. Вы можете сделать его несколько интерактивным, добавивgit-shell-commands
каталог в домашний каталог пользователя и вставив в него несколько ссылок. Но он очень ограничен (например, здесь нет двоичного файлаcd
), поэтому лучшей альтернативой является вход в систему от имениroot
илиsudo
способного пользователя иsudo -u git -s
получение полнойbash
оболочки подgit
пользователем.