我正在尝试安装 git 服务器。当我将 git 用户的默认 shell 设置为 /usr/bin/git-shell 时,以 git 身份登录时出现错误。
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
基于 Ssh 密钥的访问工作,权限设置正确。
谷歌搜索没有显示有关此错误的任何内容。
我以前安装时也用过这种方法,没有出现这样的错误。我还查看了工作服务器是否有一些额外的文件或配置,但没有出现这样的情况。
系统规格:
- Gentoo Linux(最新)
- Git 1.7.5.3
/etc/passwd 行:
git:x:1002:1004::/home/git:/usr/bin/git-shell
答案1
我跑完之后发现了这个locate git-shell-commands
cat /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
可通过 git-shell 调用的示例程序。将名为“git-shell-commands”的目录放在 shell 为 git-shell 的用户的主目录中。然后以该用户身份登录的任何人都可以运行“git-shell-commands”目录中的可执行文件。
提供的命令:
help:打印出可用命令的名称。当以交互方式运行时,git-shell 将在启动时自动运行“help”(如果存在)。
list:显示用户主目录下名称以“.git”结尾的任何裸存储库。没有其他 git 存储库可见,尽管它们可能可以通过 git-shell 克隆。'list' 旨在最大限度地减少查找可用存储库时必须对 git 进行的调用次数;如果您的设置有其他应可供用户发现的存储库,您可能希望相应地修改 'list'。
因此我以 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
现在我看不出有什么好的帮助和列表,但是登录有效。:)
答案2
我只是不得不做# mkdir ~git/git-shell-commands
然后su git
工作git 1.8.1.5-r1
答案3
答案4
应用这两个命令将解决此问题:
为 your_git_user 启用 git-shell:
usermod -s /usr/bin/git-shell 你的 git 用户
要递归地更改 your_git_user 目录的所有者:
chown -R 你的 git 用户:你的用户组 /home/你的 git 用户
您可以使用以下命令添加 git shell 命令:
cp /usr/share/doc/git-1.8.3.1/contrib/git-shell-commands/ /home/你的git用户/git-shell-commands -R