Shell
授予對受限 git shell 的訪問權限
我嘗試
git-shell
在我們的 CentOS (6.4) 系統上進行設置(在 Ubuntu 13.10 上正常執行後,可能是跨平台熱混亂?)我的
/etc/passwd
節目git:x:500:500:Web Archive VCS:/home/git:/usr/bin/git-shell
我的shell命令在
/home/git/git-shell-commands
[root@domain git]# cd /home/git/git-shell-commands/ && tree . ├── addkey ├── create ├── drop ├── help └── list
但是 ssh’ing 仍然給我
Last login: Fri Nov 15 12:14:49 2013 from localhost fatal: What do you think I am? A shell? Connection to localhost closed.
我正在使用這個資源
使用 git-shell 託管一個管理員友好的 git 伺服器
有人認為這是許可的 GIT 命令(推/拉等),但這是一個帶有預設命令的受限 shell!請任何閱讀此內容的人記下;)
如果您想查看步驟,安裝程序腳本
https://github.com/ehime/bash-tools/blob/master/git-server-setup.sh
週末我仍然無法解決這個問題,我已經添加了
# add to shells echo '/usr/bin/git-shell' >> /etc/shells # Prevent full login for security reasons chsh -s /usr/bin/git-shell git
並仔細檢查了 GIT Shell 確實存在於
/usr/bin
[root@domain bin]# ll /usr/bin | grep git -rwxr-xr-x. 105 root root 1138056 Mar 4 2013 git -rwxr-xr-x. 1 root root 1138056 Mar 4 2013 git-receive-pack -rwxr-xr-x. 1 root root 457272 Mar 4 2013 git-shell -rwxr-xr-x. 1 root root 1138056 Mar 4 2013 git-upload-archive -rwxr-xr-x. 1 root root 467536 Mar 4 2013 git-upload-pack
這是我正在處理的根帳戶,這可能與它有關嗎?
事實證明,這個功能已經在 git 1.7.4 中引入。
git --version
在基本 CentOS 6.4 安裝上給了我 1.7.1,所以這就是問題的開始 =/如果您遇到此問題,請檢查您的 git 版本。這是我為幫助您解決問題而編寫的更新程序腳本。
#!/bin/bash # Git updater for RHEL systems # CPR : Jd Daniel :: Ehime-ken # MOD : 2013-11-18 @ 09:28:49 # REF : http://goo.gl/ditKWu # VER : Version 1.1 # ROOT check if [[ $EUID -ne 0 ]]; then echo "This script must be run as su" 1>&2 ; exit 1 fi yum install -y perl-ExtUtils-MakeMaker gettext-devel expat-devel curl-devel zlib-devel openssl-devel cd /usr/local/src git clone git://git.kernel.org/pub/scm/git/git.git && cd git make && make prefix=/usr install git --version exit 0
感謝所有花時間研究此事的人,我非常感謝。