chiark / gitweb /
Don't try to change gid unless we're privileged.
[tripe] / client / tripectl.1.in
1 .\" -*-nroff-*-
2 .\".
3 .\" Manual for the administration client
4 .\"
5 .\" (c) 2008 Straylight/Edgeware
6 .\"
7 .
8 .\"----- Licensing notice ---------------------------------------------------
9 .\"
10 .\" This file is part of Trivial IP Encryption (TrIPE).
11 .\"
12 .\" TrIPE is free software; you can redistribute it and/or modify
13 .\" it under the terms of the GNU General Public License as published by
14 .\" the Free Software Foundation; either version 2 of the License, or
15 .\" (at your option) any later version.
16 .\"
17 .\" TrIPE is distributed in the hope that it will be useful,
18 .\" but WITHOUT ANY WARRANTY; without even the implied warranty of
19 .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20 .\" GNU General Public License for more details.
21 .\"
22 .\" You should have received a copy of the GNU General Public License
23 .\" along with TrIPE; if not, write to the Free Software Foundation,
24 .\" Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
25 .
26 .\"--------------------------------------------------------------------------
27 .so ../common/defs.man \" @@@PRE@@@
28 .
29 .\"--------------------------------------------------------------------------
30 .TH tripectl 1 "19 February 2001" "Straylight/Edgeware" "TrIPE: Trivial IP Encryption"
31 .
32 .\"--------------------------------------------------------------------------
33 .SH "NAME"
34 .
35 tripectl \- simple client for TrIPE
36 .
37 .\"--------------------------------------------------------------------------
38 .SH "SYNOPSIS"
39 .
40 .B tripectl
41 .RB [ \-w ]
42 .RB [ \-\fIoptions ]
43 .RI [ command
44 .RI [ args ]...]
45 .br
46 .B tripectl
47 .RB [ \-Dl ]
48 .RB [ \-f
49 .IR file ]
50 .RB [ \-\fIoptions ]
51 .PP
52 Options:
53 .br
54         \&
55 .RB [ \-s ]
56 .RB [ \-d
57 .IR dir ]
58 .RB [ \-a
59 .IR socket ]
60 .RB [ \-P
61 .IR pidfile ]
62 .br
63         \&
64 .RB [ \-p
65 .IR path ]
66 .RB [ \-U
67 .IR user ]
68 .RB [ \-G
69 .IR group ]
70 .RB [ \-S
71 .IB arg , arg ,\fR...]
72 .
73 .\"--------------------------------------------------------------------------
74 .SH "DESCRIPTION"
75 .
76 The
77 .B tripectl
78 program is a simple client which can be used, either interactively or
79 from a script, to send commands to and read status information from a
80 running
81 .BR tripe (8)
82 server.  It can also be used to start
83 .BR tripe (8),
84 passing appropriate arguments and capturing logging information.
85 .SS "Command-line options"
86 .TP
87 .B "\-h, \-\-help"
88 Writes a brief description of the command-line options available to
89 standard output and exits with status 0.
90 .TP
91 .B "\-v, \-\-version"
92 Writes tripe's version number to standard output and exits with status
93 0.
94 .TP
95 .B "\-u, \-\-usage"
96 Writes a brief usage summary to standard output and exits with status 0.
97 .TP
98 .B "\-D, \-\-daemon"
99 Makes
100 .B tripectl
101 disassociate from the terminal and become a background process after
102 connecting to the server.
103 .TP
104 .BI "\-d, \-\-directory=" dir
105 Make
106 .I dir
107 the current directory, before doing anything else.  Note that all the
108 other filenames (e.g., the log output file) are relative to this
109 directory.  The default directory, if this option is not specified, is
110 taken from the environment variable
111 .BR TRIPEDIR ;
112 if that's not defined either, a default default of
113 .B "\*(/c"
114 is used.
115 .TP
116 .BI "\-a, \-\-admin-socket=" socket
117 If connecting to a running server, connect to the socket named
118 .IR socket ;
119 if running a new server, instruct it to listen for admin
120 connections on
121 .IR socket .
122 The default socket, if this option is not specified, is taken from the
123 environment variable
124 .BR TRIPESOCK ;
125 if that's not defined either, a default default of
126 .B "\*(/s/tripesock"
127 is used.
128 .TP
129 .BI "\-P, \-\-pidfile=" pidfile
130 Write
131 .BR tripectl 's
132 process-id to
133 .I pidfile
134 (relative to
135 .IR dir ).
136 If the
137 .B \-D
138 and
139 .B \-f
140 options are given, a default of
141 .IB dir /tripectl.pid
142 is used if you don't give a
143 .B \-P
144 option.
145 .TP
146 .B "\-s, \-\-spawn"
147 Start a new server: don't connect to an existing one.  Starting a
148 .BR tripe (8)
149 server in this manner is a good way to ensure that no log messages are
150 lost.  The
151 .BR \-l ,
152 .B \-f
153 and
154 .B \-D
155 options are particularly useful in conjunction with
156 .BR \-s .
157 .TP
158 .BI "\-p, \-\-spawn\-path=" path
159 Implies
160 .BR \-s ;
161 runs the program named by
162 .I path
163 rather than the default
164 .BR tripe .
165 If
166 .I path
167 is actually an unqualified filename, the program to run is found using
168 the
169 .B PATH
170 environment variable in the usual way.
171 .TP
172 .BI "\-S, \-\-spawn\-args=" arg , arg ,\fR...
173 Implies
174 .BR \-s ;
175 passes the comma-separated
176 .IR arg s
177 to the
178 .B tripe
179 server on its command line.  Arguments added using this option are added
180 .I after
181 any passed automatically by
182 .B tripectl
183 (e.g.,
184 .BR \-a ).
185 .TP
186 .BI "\-U, \-\-setuid=" user
187 Set uid to that of
188 .I user
189 (either a user name or integer uid) after initialization.  Also set gid
190 to
191 .IR user 's
192 primary group, unless overridden by a
193 .B \-G
194 option.  If a new
195 .BR tripe (8)
196 server is going to be spawned then it is also passed corresponding
197 .B \-U
198 and
199 .B \-G
200 options.
201 .TP
202 .BI "\-G, \-\-setgid=" group
203 If the current effective uid is zero (i.e., the daemon was invoked as
204 .BR root )
205 then set gid to that of
206 .I group
207 (either a group name or integer gid) after initialization.  If a new
208 .BR tripe (8)
209 server is going to be spawned then it is also passed a corresponding
210 .B \-G
211 option.
212 .TP
213 .B "\-l, \-\-syslog"
214 Send warnings and trace messages to the
215 .BR syslog (8)
216 service.  Messages are logged using the
217 .B daemon
218 facility.  Warnings are logged with severity
219 .BR warning ;
220 trace messages are logged with severity
221 .BR debug .
222 .TP
223 .BI "\-f, \-\-logfile=" file
224 Write warnings and trace messages to
225 .IR file .
226 On receipt of a
227 .B SIGHUP
228 signal,
229 .B tripectl
230 will close its log file and reopen a new one with the same name.  This
231 is useful when you rotate logs.
232 .TP
233 .B "\-w, \-\-warnings"
234 Write warnings to standard error even when running noninteractively.
235 .SS "Interactive use"
236 With no arguments,
237 .B tripectl
238 will connect to a running server and await commands from its standard
239 input.  The commands are submitted to the server unchanged, and the
240 results written to standard output.  It will quit when it receives a
241 fatal signal or an end-of-file indication from the server.
242 .SS "Use from scripts"
243 If arguments are given to
244 .BR tripectl ,
245 they are quoted if necessary to protect spaces and other special
246 characters, concatenated with spaces between, and submitted to the
247 server after connection.  Any
248 .B INFO
249 responses returned by the server are written to standard output (without
250 the
251 .B INFO
252 on the front).  A
253 .B FAIL
254 response causes the error message to be written to standard error, and
255 the client to exit with a nonzero return code.  An
256 .B OK
257 response causes the client to exit with a zero return code.  Unless the
258 .B \-w
259 command-line option was given, any
260 .B WARN
261 responses are discarded; if
262 .B \-w
263 .I was
264 given,
265 .B WARN
266 responses are written to standard error.  In all cases,
267 .B TRACE
268 responses are ignored.
269 .SS "Starting the tripe server"
270 If any of the options
271 .BR \-s ,
272 .B \-p
273 or
274 .B \-S
275 are given,
276 .B tripectl
277 will start a new
278 .B tripe
279 server, rather than connecting to an existing one.
280 .PP
281 The command line for the new server is
282 .IP
283 .I path
284 .B \-F
285 .B \-d.\&
286 .B \-a
287 .I socket
288 .I dash-S-options
289 .PP
290 where
291 .I dash-S-options
292 is the concatenation of the arguments of
293 .B \-S
294 options, split at commas.
295 .PP
296 Starting a
297 .B tripe
298 server through
299 .B tripectl
300 is most useful if you want to collect logging information from the
301 server, and want to avoid losing any.  For example, the command
302 .VS
303 tripectl -Ds -f tripe.log
304 .VE
305 starts up a new server in the default directory, and captures all of its
306 logging output (i.e.,
307 .B WARN
308 and
309 .B TRACE
310 messages) in the file
311 .BR tripe.log .
312 It stores its process-id in
313 .BR tripectl.pid .
314 .PP
315 It's possible to communicate interactively with a newly-started server,
316 or to give it a command and quit, but this is seldom useful.
317 .
318 .\"--------------------------------------------------------------------------
319 .SH "SEE ALSO"
320 .
321 .BR tripe\-admin (5),
322 .BR tripe (8).
323 .PP
324 .IR "The Trivial IP Encryption Protocol" ,
325 .IR "The Wrestlers Protocol" .
326 .
327 .\"--------------------------------------------------------------------------
328 .SH "AUTHOR"
329 .
330 Mark Wooding, <mdw@distorted.org.uk>
331 .
332 .\"----- That's all, folks --------------------------------------------------