Add `cvssh' shell for anonymous CVS support.
[shells] / cvssh.1
CommitLineData
28e8164e 1.TH cvssh 1 "21 April 1999" "Local tools"
2.SH NAME
3cvssh \- quick shell for anonymous CVS servers
4.SH SYNOPSIS
5.B cvssh
6.SH DESCRIPTION
7The
8.B cvssh
9is intended to be used as the login shell of an anonymous CVS server
10account. It's not terribly useful in the outside world, because it
11requires a patched version of CVS which I haven't released.
12.SH ANONYMOUS CVS
13Suppose you want to set up a CVS repository in
14.B /home/cvs/cvs
15with the anonymous user
16.BR anoncvs .
17The following steps will get this done:
18.IP " 1."
19Make the directory
20.B /home/cvs
21owned by
22.B root
23with mode 755, and execute
24.sp 1
25.RS 10
26.nf
27.ft B
28cvs -d /home/cvs/cvs init
29.ft R
30.fi
31.RE
32.IP ""
33to create the repository.
34.IP " 2."
35Add a user
36.B anoncvs
37with a disabled password, shell set to
38.B chrootsh
39and home directory set to
40.BR /home/cvs/./cvs .
41.IP " 3."
42As the super-user, run the following commands:
43.PP
44.RS 10
45.nf
46.ft B
47# cd /home/cvs
48# mkdir -m 711 bin dev etc lib
49# mkdir -m 1777 tmp
50.ft R
51.fi
52.RE
53.IP ""
54You may need some other directories as well. For example, Digital Unix
55users will want to make
56.B shlib
57and
58.B sbin
59for the shared library system to work properly.
60.IP " 4."
61Copy the programs
62.BR cvs ,
63.B gzip
64and
65.B sh
66into
67.BR /home/cvs/bin .
68If your version of
69.B /bin/sh
70is really the Free Software Foundation's
71.B bash
72in disguise (e.g., you're a Linux user) then you're probably better off
73installing something lighter-weight like the FreeBSD shell (available in
74a guise called
75.B ash
76with Debian GNU/Linux). It's smaller and doesn't need as many shared
77libraries.
78.IP ""
79Also copy in the
80.B cvssh
81binary.
82.IP " 5."
83Copy in the shared libraries needed. If you have an
84.B ldd
85binary handy, run
86.sp 1
87.RS 10
88.nf
89.ft B
90# ldd bin/*
91.ft R
92.fi
93.RE
94.IP ""
95and copy in what it tells you to. Otherwise you'll have to find things
96out the hard way by looking at error messages. Do any other
97configuration your shared library system needs or desires here. For
98example, Linux users should run
99.sp 1
100.RS 10
101.nf
102.ft B
103# ldconfig -n -r/home/cvs /lib
104.ft R
105.fi
106.RE
107.IP ""
108to make a cache file for the shared loader.
109.IP " 6."
110Make any devices needed in the
111.B /dev
112directory. For Linux, that probably involves
113.sp 1
114.RS 10
115.nf
116.ft B
117# mknod -m666 dev/null c 1 3
118# mknod -m666 dev/zero c 1 5
119.ft R
120.fi
121.RE
122.IP ""
123Other operating systems will, of course, be different.
124.IP " 7."
125Edit the password and group files the
126.B etc
127directory. My versions are extremely minimal. The important thing is
128that the
129.B anoncvs
130user should have an entry like the one in the main password database but
131with home directory
132.B /cvs
133and shell
134.BR /bin/cvssh .
135The
136.B passwd
137file should contain no passwords or other useful information. Only put
138other users in the files if you really feel like it.
139.IP " 8."
140Finishing touches. Run the command
141.sp 1
142.RS 10
143.nf
144.ft B
145# touch cvs/.hushlogin
146.ft R
147.fi
148.RE
149.IP ""
150to make sure that logging in doesn't spew junk everywhere.
151Also, if you're planning on using SSH, do
152.sp 1
153.RS 10
154.nf
155.ft B
156# mkdir cvs/.ssh
157# touch cvs/.ssh/rc
158.ft R
159.fi
160.RE
161.IP ""
162to make SSH stop trying to play silly games with
163.BR xauth .
164.IP " 9."
165Relax. You're done.
166.SH BUGS
167None planned.
168.SH "SEE ALSO"
169.BR chrootsh (8),
170.BR cvs (1).
171.SH AUTHOR
172Mark Wooding (mdw@nsict.org)