Blob


1 .\"
2 .\" Copyright (c) 2022 Stefan Sperling
3 .\"
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.
7 .\"
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.
15 .\"
16 .Dd $Mdocdate$
17 .Dt GOTSH 1
18 .Os
19 .Sh NAME
20 .Nm gotsh
21 .Nd Game of Trees Shell
22 .Sh SYNOPSIS
23 .Nm Fl c Sq Cm git-receive-pack Ar repository-path
24 .Nm Fl c Sq Cm git-upload-pack Ar repository-path
25 .Sh DESCRIPTION
26 .Nm
27 is the network-facing interface to
28 .Xr gotd 8 .
29 It implements the server-side part of the Git network protocol used by
30 .Xr git 1
31 and
32 .Xr got 1 .
33 .Pp
34 .Nm
35 is not an interactive shell.
36 .Nm
37 is intended to be configured as the login shell of Git repository
38 user accounts on servers running
39 .Xr gotd 8 .
40 If users require a different login shell,
41 .Nm
42 can be installed in the command search path under the names
43 .Cm git-receive-pack
44 and
45 .Cm git-upload-pack .
46 .Pp
47 The users can then interact with
48 .Xr gotd 8
49 over the network.
50 When users invoke commands such as
51 .Cm got send
52 and
53 .Cm got fetch
54 on client machines,
55 .Xr got 1
56 will connect to the server with
57 .Xr ssh 1 .
58 .Nm
59 will facilitate communication between
60 .Xr gotd 8
61 running on the server machine and the
62 .Xr got 1
63 or
64 .Xr git 1
65 program running on the client machine.
66 .Pp
67 Users running
68 .Nm
69 must be members of the group which has read/write permission to the
70 .Xr gotd 8
71 unix socket.
72 The group used for this purpose can be configured in
73 .Xr gotd.conf 5 .
74 Users running
75 .Nm
76 should not have access to Git repositories by means other than
77 accessing the unix socket of
78 .Xr gotd 8
79 via
80 .Nm .
81 .Pp
82 It is recommended to restrict
83 .Xr ssh 1
84 features available to users of
85 .Nm .
86 See the
87 .Sx EXAMPLES
88 section for details.
89 .Sh ENVIRONMENT
90 .Bl -tag -width GOTD_UNIX_SOCKET
91 .It Ev GOTD_UNIX_SOCKET
92 Set the path to the unix socket which
93 .Xr gotd 8
94 is listening on.
95 If not specified, the default path
96 .Pa /var/run/gotd.sock
97 will be used.
98 .El
99 .Sh EXAMPLES
100 The following
101 .Xr sshd_config 5
102 directives are recommended to protect the server machine and any systems
103 reachable from it via
104 .Xr ssh 1
105 forwarding features.
106 This example assumes the group called
107 .Dq _gotsh
108 has read/write access to the
109 .Xr gotd 8
110 unix socket.
111 .Bd -literal -offset indent
112 Match Group _gotsh
113 DisableForwarding yes
114 PermitTTY no
115 .Sh SEE ALSO
116 .Xr got 1 ,
117 .Xr ssh 1 ,
118 .Xr gotd.conf 5 ,
119 .Xr sshd_config 5 ,
120 .Xr gotd 8
121 .Sh AUTHORS
122 .An Stefan Sperling Aq Mt stsp@openbsd.org