[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: CVS w/ ssh - chroot

From: Mark D. Baushke
Subject: Re: CVS w/ ssh - chroot
Date: Fri, 14 Jan 2005 11:13:33 -0800

Hash: SHA1

Grand Poohbah <address@hidden> writes:

> I am setting up a FreeBSD 5.x machine with cvs 1.11.17.
> My goal is to have a "guest" style read-only access to a cvs repository 
> under a strict chroot environment.  I have setup my repository with file 
> permissions similar to those found in the how-to 
>   However, instead 
> of using a rssh or a smrsh type of shell, I am attempting to do a classic 
> chroot.
> The cvs user logs into the server with ssh and get dropped into a chroot 
> directory.  I have place what I believe to be all the necessary files (cvs 
> binary, permission/group files and repository files) for cvs to work inside 
> this chroot environment and it *seems* to be working as intended as a chroot 
> environment.  However, when my remote system attempts a "cvs update -Ad" (or 
> diff or other client command)  I get the following errors.
> Root: not found
> Valid-responses: not found
> valid-requests: not found
> Then the process just hangs until a ^C
> Question: is there a debug or verbose mode I can use to get more output?  I 
> have the mirrored repository file structure and permissions set up 
> correctly, my only binaries I have are the following
> /bin/sh
> /bin/
> /bin/ls
> /dev/null
> /usr/bin/rsync
> /usr/bin/cvs

You will likely also need some libraries. A stock version of FreeBSD
comes with a patched version of cvs 1.11.5-FreeBSD and needs a number of

% uname -a
FreeBSD test52 5.2-RELEASE FreeBSD 5.2-RELEASE #0: Sun Jan 11 04:21:45 GMT 2004 
    address@hidden:/usr/obj/usr/src/sys/GENERIC  i386
% /usr/bin/cvs -v

Concurrent Versions System (CVS) 1.11.5-FreeBSD (client/server)

Copyright (c) 1989-2002 Brian Berliner, david d `zoo' zuhn, 
                        Jeff Polk, and other authors

CVS may be copied only under the terms of the GNU General Public License,
a copy of which can be found with the CVS distribution kit.

Specify the --help option for further information about CVS
% ldd /usr/bin/cvs
/usr/bin/cvs: => /usr/lib/ (0x280f3000) => /lib/ (0x280fb000) => /lib/ (0x28105000) => /lib/ (0x2811e000) => /usr/lib/ (0x2812c000) => /usr/lib/ (0x2813a000) => /usr/lib/ (0x28177000) => /lib/ (0x2819d000) => /usr/lib/ (0x282ab000) => /usr/lib/ (0x282ba000) => /lib/ (0x282bc000)

Your cvs might be more static, but you should look closely to be sure.

> Does cvs server need more binaries to work properly? Is there a way I can 
> run "cvs server" by hand from the chroot environment to simulate what my 
> client should be doing?

Look at what 'cvs -t' does (for cvs 1.12.x you may use up to three '-t'
options at once).

Look at what the environment variable CVS_CLIENT_LOG provides (when
given a prefix pathname it will create a .in and a .out that contains
the conversation that occurs across the client/server connection).

Read the doc/cvsclient.text file (or one of the generated output formats
of it) to better understand the client/server protocol being used.

At a guess, your cvs is not properly getting the 'server' argument right
now somehow.

If the client is using 

  cvs -t :ext:host.dom.ain/path/to/repository

then you should end up seing something like this output

  $CVS_RSH host.dom.ain $CVS_SERVER server

where the values of $CVS_RSH may be replaced with 'ssh' or 'rsh'
and $CVS_SERVER is probably replaced with 'cvs'

        Good luck,
        -- Mark
Version: GnuPG v1.2.3 (FreeBSD)


reply via email to

[Prev in Thread] Current Thread [Next in Thread]