Add `cvssh' shell for anonymous CVS support.
[shells] / cvssh.1
diff --git a/cvssh.1 b/cvssh.1
new file mode 100644 (file)
index 0000000..bc8d360
--- /dev/null
+++ b/cvssh.1
@@ -0,0 +1,172 @@
+.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 -n -r/home/cvs /lib
+.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)