2 .\" Copyright (c) 2022 Stefan Sperling
4 .\" Permission to use, copy, modify, and distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
6 .\" copyright notice and this permission notice appear in all copies.
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 .Nd Game of Trees Shell
23 .Nm Fl c Sq Cm git-receive-pack Ar repository-path
24 .Nm Fl c Sq Cm git-upload-pack Ar repository-path
27 is the network-facing interface to
29 It implements the server-side part of the Git network protocol used by
35 is not an interactive shell.
37 is intended to be configured as the login shell of Git repository
38 user accounts on servers running
40 If users require a different login shell,
42 can be installed in the command search path under the names
48 can be used to select the appropriate command to run automatically.
50 The users can then interact with
53 When users invoke commands such as
59 will connect to the server with
62 will facilitate communication between
64 running on the server machine and the
68 program running on the client machine.
72 should not have access to Git repositories by means other than
73 accessing the unix socket of
78 It is recommended to restrict
80 features available to users of
86 .Bl -tag -width GOTD_UNIX_SOCKET
87 .It Ev GOTD_UNIX_SOCKET
88 Set the path to the unix socket which
91 If not specified, the default path
92 .Pa /var/run/gotd.sock
97 directives such as the following are recommended to protect the server
98 machine and any systems reachable from it, especially if anonymous users
99 are allowed to connect:
100 .Bd -literal -offset indent
102 DisableForwarding yes
106 It can be convenient to add all relevant users to a common group, such as
108 and then use this group as the Match criteria:
109 .Bd -literal -offset indent
110 Match Group developers
111 DisableForwarding yes
115 Anonymous users can be given public read-only access by using a
117 access rule such as the following:
118 .Bd -literal -offset indent
119 repository "public" {
120 path "/var/git/public.git"
125 The anonymous user account should have a publicly known password, or can be
126 set up with an empty password in which case the user's
128 entry would look similar to this example:
130 anonymous::1002:1002::0:0:Anonymous:/home/anonymous:/usr/local/bin/gotsh
133 Use of an empty password must be explicitly allowed in
135 .Bd -literal -offset indent
137 PasswordAuthentication yes
138 PermitEmptyPasswords yes
139 DisableForwarding yes
150 .An Stefan Sperling Aq Mt stsp@openbsd.org