Hi, On Wed, 18 Feb 2009, Bosko Ivanisevic wrote: > On Wed, Feb 18, 2009 at 2:24 PM, Johannes Schindelin > <Johannes.Schindelin@xxxxxx> wrote: > > > On Wed, 18 Feb 2009, Bosko Ivanisevic wrote: > > > >> In the company I'm working someone has restricted access to all users > >> to only use cvs via cvssh.pl script (source at the end of message) > >> taken from gforge. This script is set as a shell for all users. Now I > >> would like to change it so I can run git too. I've tried by adding > >> 'git', 'git-upload-pack', 'git-receive-pack' and 'git-shell' in the > >> array @allowed_commands. After that if I try to clone existing > >> repository with: > >> > >> git clone ssh://testuser@server_name/tmp/test.git > >> > >> I get following error: > >> > >> fatal: ''/tmp/test.git'': unable to chdir or not a git archive > >> fatal: The remote end hung up unexpectedly > >> > >> I first thought that testuser doesn't have permissions to read > >> directory /tmp/test.git so I changed mode and gave r+w permissions > >> recursively on that folder, but result was same. > > > > r+w? Not a+rwx? > > > > And only on /tmp/test.git/, or also on /tmp/? > > > > A better way would be to use 'sudo -u testuser git ls-remote > > /tmp/test.git' if sudo is available (you haven't revealed useful > > information about the host). > > Thanks for your reply. Here are more data. System is SuSe 10.3. On the > test server which has same setup but I can change shell when I change > testuser's shell to /bin/bash I can regularly clone git repository from > remote machine, so all permissions are set correctly. Besides, output > of: > > git ls-remote ssh://testuser@server_name:/tmp/test.git > > is: > > 3446c5347e0563cb87e1d8951c57b7f36996f44b HEAD > 3446c5347e0563cb87e1d8951c57b7f36996f44b refs/heads/master > > That leads me to conclusion that perl's exec command makes some mess > which prevents git of running correctly. Maybe. Maybe it is also unsetting ENV which causes grief. > >> There is no way I can avoid this perl script (company policy) but I > >> can change it. Problem is that I do not know Perl so much and I do > >> not know what git is exactly doing behind the scene when it is run > >> via ssh. > > > > I'd use 'system("some shell >&2");' to try to debug it. > > > I didn't understand this part. If I change > > exec @cmd; > > command from perl script to: > > system("/bin/bash >&2); > > git clone just hangs on the client side. I guess I did something wrong > but don't know what. I did not mean to replace the exec. Rather, I meant you could do something like system('ls -l /tmp/test.git >&2'); to see what is actually happening. I mean, it could be that for some reason I do not understand, the whole thing runs in a chroot or some such. Ciao, Dscho -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html