Re: Gforge's cvssh.pl script and git
- From
- Bosko Ivanisevic <bosko.ivanisevic@gmail.com>
- Date
- Feb 18, 2009, 14:31 UTC
- Message-ID
- <2c0671440902180631lbf08d5egb003082a3c683f62@mail.gmail.com>
- In-Reply-To
- <alpine.DEB.1.00.0902181417510.6274@intel-tinevez-2-302>
Hi,
On Wed, Feb 18, 2009 at 2:24 PM, Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
Show 31 quoted lines
> Hi, > > 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.
Show 7 quoted lines
>> 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.
Regards, Bosko