.\" -*-nroff-*- .TH cvssh 1 "21 April 1999" "Local tools" .SH NAME cvssh \- quick shell for anonymous CVS servers .SH SYNOPSIS .B cvssh .SH DESCRIPTION The .B cvssh is intended to be used as the login shell of an anonymous CVS server account. It's not terribly useful in the outside world, because it requires a patched version of CVS which I haven't released. .SH ANONYMOUS CVS Suppose you want to set up a CVS repository in .B /home/cvs/cvs with the anonymous user .BR anoncvs . The following steps will get this done: .IP " 1." Make the directory .B /home/cvs owned by .B root with mode 755, and execute .sp 1 .RS 10 .nf .ft B cvs -d /home/cvs/cvs init .ft R .fi .RE .IP "" to create the repository. .IP " 2." Add a user .B anoncvs with a disabled password, shell set to .B chrootsh and home directory set to .BR /home/cvs/./cvs . .IP " 3." As the super-user, run the following commands: .PP .RS 10 .nf .ft B # cd /home/cvs # mkdir -m 711 bin dev etc lib # mkdir -m 1777 tmp .ft R .fi .RE .IP "" You may need some other directories as well. For example, Digital Unix users will want to make .B shlib and .B sbin for the shared library system to work properly. .IP " 4." Copy the programs .BR cvs , .B gzip and .B sh into .BR /home/cvs/bin . If your version of .B /bin/sh is really the Free Software Foundation's .B bash in disguise (e.g., you're a Linux user) then you're probably better off installing something lighter-weight like the FreeBSD shell (available in a guise called .B ash with Debian GNU/Linux). It's smaller and doesn't need as many shared libraries. .IP "" Also copy in the .B cvssh binary. .IP " 5." Copy in the shared libraries needed. If you have an .B ldd binary handy, run .sp 1 .RS 10 .nf .ft B # ldd bin/* .ft R .fi .RE .IP "" and copy in what it tells you to. Otherwise you'll have to find things out the hard way by looking at error messages. Do any other configuration your shared library system needs or desires here. For example, Linux users should run .sp 1 .RS 10 .nf .ft B # ldconfig -r/home/cvs .ft R .fi .RE .IP "" to make a cache file for the shared loader. .IP " 6." Make any devices needed in the .B /dev directory. For Linux, that probably involves .sp 1 .RS 10 .nf .ft B # mknod -m666 dev/null c 1 3 # mknod -m666 dev/zero c 1 5 .ft R .fi .RE .IP "" Other operating systems will, of course, be different. .IP " 7." Edit the password and group files the .B etc directory. My versions are extremely minimal. The important thing is that the .B anoncvs user should have an entry like the one in the main password database but with home directory .B /cvs and shell .BR /bin/cvssh . The .B passwd file should contain no passwords or other useful information. Only put other users in the files if you really feel like it. .IP " 8." Finishing touches. Run the command .sp 1 .RS 10 .nf .ft B # touch cvs/.hushlogin .ft R .fi .RE .IP "" to make sure that logging in doesn't spew junk everywhere. Also, if you're planning on using SSH, do .sp 1 .RS 10 .nf .ft B # mkdir cvs/.ssh # touch cvs/.ssh/rc .ft R .fi .RE .IP "" to make SSH stop trying to play silly games with .BR xauth . .IP " 9." Relax. You're done. .SH BUGS None planned. .SH "SEE ALSO" .BR chrootsh (8), .BR cvs (1). .SH AUTHOR Mark Wooding (mdw@nsict.org)