Blob


1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8"/>
5 <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
6 <link rel="stylesheet" href="mandoc.css" type="text/css" media="all"/>
7 <title>GOTSH(1)</title>
8 </head>
9 <!-- This is an automatically generated file. Do not edit.
10 Copyright (c) 2022 Stefan Sperling
12 Permission to use, copy, modify, and distribute this software for any
13 purpose with or without fee is hereby granted, provided that the above
14 copyright notice and this permission notice appear in all copies.
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 -->
24 <body>
25 <div class="head" role="doc-pageheader" aria-label="Manual header
26 line"><span class="head-ltitle">GOTSH(1)</span> <span class="head-vol">General
27 Commands Manual</span> <span class="head-rtitle">GOTSH(1)</span></div>
28 <main class="manual-text">
29 <section class="Sh">
30 <h2 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h2>
31 <p class="Pp"><code class="Nm">gotsh</code> &#x2014;
32 <span class="Nd" role="doc-subtitle">Game of Trees Shell</span></p>
33 </section>
34 <section class="Sh">
35 <h2 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h2>
36 <table class="Nm">
37 <tr>
38 <td><code class="Nm">gotsh <code class="Fl">-c</code>
39 &#x2018;<code class="Cm">git-receive-pack</code>
40 <var class="Ar">repository-path</var>&#x2019;</code></td>
41 <td></td>
42 </tr>
43 </table>
44 <br/>
45 <table class="Nm">
46 <tr>
47 <td><code class="Nm">gotsh <code class="Fl">-c</code>
48 &#x2018;<code class="Cm">git-upload-pack</code>
49 <var class="Ar">repository-path</var>&#x2019;</code></td>
50 <td></td>
51 </tr>
52 </table>
53 </section>
54 <section class="Sh">
55 <h2 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h2>
56 <p class="Pp"><code class="Nm">gotsh</code> is the network-facing interface to
57 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>. It implements the
58 server-side part of the Git network protocol used by
59 <a class="Xr" aria-label="git, section 1">git(1)</a> and
60 <a class="Xr" aria-label="got, section 1">got(1)</a>.</p>
61 <p class="Pp"><code class="Nm">gotsh</code> is not an interactive shell.
62 <code class="Nm">gotsh</code> is intended to be configured as the login
63 shell of Git repository user accounts on servers running
64 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a>. If users require a
65 different login shell, <code class="Nm">gotsh</code> can be installed in the
66 command search path under the names <code class="Cm">git-receive-pack</code>
67 and <code class="Cm">git-upload-pack</code>, or
68 <a class="Xr" aria-label="gitwrapper, section 1">gitwrapper(1)</a> can be
69 used to select the appropriate command to run automatically.</p>
70 <p class="Pp">The users can then interact with <a class="Xr" aria-label="gotd,
71 section 8">gotd(8)</a> over the network. When users invoke commands such as
72 <code class="Cm">got send</code> and <code class="Cm">got fetch</code> on
73 client machines, <a class="Xr" aria-label="got, section 1">got(1)</a> will
74 connect to the server with <a class="Xr" aria-label="ssh, section
75 1">ssh(1)</a>. <code class="Nm">gotsh</code> will facilitate communication
76 between <a class="Xr" aria-label="gotd, section 8">gotd(8)</a> running on
77 the server machine and the <a class="Xr" aria-label="got, section
78 1">got(1)</a> or <a class="Xr" aria-label="git, section 1">git(1)</a>
79 program running on the client machine.</p>
80 <p class="Pp">Users running <code class="Nm">gotsh</code> should not have access
81 to Git repositories by means other than accessing the unix socket of
82 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a> via
83 <code class="Nm">gotsh</code>.</p>
84 <p class="Pp">It is recommended to restrict <a class="Xr" aria-label="ssh,
85 section 1">ssh(1)</a> features available to users of
86 <code class="Nm">gotsh</code>. See the
87 <a class="Sx" href="#EXAMPLES">EXAMPLES</a> section for details.</p>
88 </section>
89 <section class="Sh">
90 <h2 class="Sh" id="ENVIRONMENT"><a class="permalink" href="#ENVIRONMENT">ENVIRONMENT</a></h2>
91 <dl class="Bl-tag">
92 <dt id="GOTD_UNIX_SOCKET"><a class="permalink" href="#GOTD_UNIX_SOCKET"><code class="Ev">GOTD_UNIX_SOCKET</code></a></dt>
93 <dd>Set the path to the unix socket which <a class="Xr" aria-label="gotd,
94 section 8">gotd(8)</a> is listening on. If not specified, the default path
95 <span class="Pa">/var/run/gotd.sock</span> will be used.</dd>
96 </dl>
97 </section>
98 <section class="Sh">
99 <h2 class="Sh" id="EXAMPLES"><a class="permalink" href="#EXAMPLES">EXAMPLES</a></h2>
100 <p class="Pp"><a class="Xr" aria-label="sshd_config, section
101 5">sshd_config(5)</a> directives such as the following are recommended to
102 protect the server machine and any systems reachable from it, especially if
103 anonymous users are allowed to connect:</p>
104 <div class="Bd Pp Bd-indent Li">
105 <pre>Match User developer
106 DisableForwarding yes
107 PermitTTY no</pre>
108 </div>
109 <p class="Pp">It can be convenient to add all relevant users to a common group,
110 such as &#x201C;developers&#x201D;, and then use this group as the Match
111 criteria:</p>
112 <div class="Bd Pp Bd-indent Li">
113 <pre>Match Group developers
114 DisableForwarding yes
115 PermitTTY no</pre>
116 </div>
117 <p class="Pp">Anonymous users can be given public read-only access by using a
118 <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a> access rule
119 such as the following:</p>
120 <div class="Bd Pp Bd-indent Li">
121 <pre>repository &quot;public&quot; {
122 path &quot;/var/git/public.git&quot;
123 permit ro anonymous
124 }</pre>
125 </div>
126 <p class="Pp">The anonymous user account should have a publicly known password,
127 or can be set up with an empty password in which case the user's
128 <a class="Xr" aria-label="vipw, section 8">vipw(8)</a> entry would look
129 similar to this example:</p>
130 <div class="Bd Pp Li">
131 <pre>anonymous::1002:1002::0:0:Anonymous:/home/anonymous:/usr/local/bin/gotsh</pre>
132 </div>
133 <p class="Pp">Use of an empty password must be explicitly allowed in
134 <a class="Xr" aria-label="sshd_config, section 5">sshd_config(5)</a>:</p>
135 <div class="Bd Pp Bd-indent Li">
136 <pre>Match User anonymous
137 PasswordAuthentication yes
138 PermitEmptyPasswords yes
139 DisableForwarding yes
140 PermitTTY no</pre>
141 </div>
142 </section>
143 <section class="Sh">
144 <h2 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
145 ALSO</a></h2>
146 <p class="Pp"><a class="Xr" aria-label="gitwrapper, section
147 1">gitwrapper(1)</a>, <a class="Xr" aria-label="got, section 1">got(1)</a>,
148 <a class="Xr" aria-label="ssh, section 1">ssh(1)</a>,
149 <a class="Xr" aria-label="gotd.conf, section 5">gotd.conf(5)</a>,
150 <a class="Xr" aria-label="sshd_config, section 5">sshd_config(5)</a>,
151 <a class="Xr" aria-label="gotd, section 8">gotd(8)</a></p>
152 </section>
153 <section class="Sh">
154 <h2 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h2>
155 <p class="Pp"><span class="An">Stefan Sperling</span>
156 &lt;<a class="Mt" href="mailto:stsp@openbsd.org">stsp@openbsd.org</a>&gt;</p>
157 </section>
158 </main>
159 <div class="foot" role="doc-pagefooter" aria-label="Manual footer
160 line"><span class="foot-left"></span><span class="foot-date">March 11,
161 2024</span> <span class="foot-os">OpenBSD 7.5</span></div>
162 </body>
163 </html>