ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/doc/podhelp/operserv.pod
Revision: 1.3
Committed: Tue Aug 28 17:08:06 2007 UTC (16 years, 9 months ago) by pippijn
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +14 -10 lines
Log Message:
- changed name
- updated the example config to the new system
- added more documentation
- enhanced documentation generators
- added a link to the pdf to the website
- added an RSS feed generator
- transitioned hooks to c++ callbacks
- did various merges with upstream along the way
- added const where appropriate
- removed the old block allocator
- fixed most memory leaks
- transitioned some dictionaries to std::map
- transitioned some lists to std::vector
- made some free functions members where appropriate
- renamed string to dynstr and added a static string ststr
- use NOW instead of time (NULL) if possible
- completely reworked database backends, crypto handlers and protocol handlers
  to use an object factory
- removed the old module system. ermyth does not do any dynamic loading anymore
- fixed most of the build system
- reworked how protocol commands work

File Contents

# Content
1 =head1 AKILL
2
3 F<AKILL> allows you to maintain network-wide bans a la DALnet AKILL.
4 Services will keep your AKILLs stored and allow for easy management.
5
6 =for Syntax: AKILL ADD X<nick|hostmask> [!P|!T X<minutes>] X<reason>
7
8 If the !P token is specified the F<AKILL> will never expire (permanent).
9 If the !T token is specified expire time must follow, in minutes,
10 hours ("h"), days ("d") or weeks ("w").
11
12 =head2 Examples
13
14 /msg &nick& AKILL ADD foo !T 5 bar reason
15 /msg &nick& AKILL ADD foo !T 3d bar reason
16 /msg &nick& AKILL ADD foo@bar.com !P foo reason
17 /msg &nick& AKILL ADD foo@bar.com foo reason
18
19 The first example looks for the user with a nickname of "foo" and adds
20 a 5 minute F<AKILL> for "bar reason."
21
22 The second example is similar but adds the F<AKILL> for 3 days instead of
23 5 minutes.
24
25 The third example adds a permanent F<AKILL> on foo@bar.com for "foo reason."
26
27 The fourth example adds a F<AKILL> on foo@bar.com for the duration specified
28 in the configuration file for "foo reason."
29
30 =for Syntax: AKILL DEL X<hostmask|number>
31
32 If number is specified it correlates with the number on F<AKILL LIST>.
33 You may specify multiple numbers by separating with commas.
34 You may specify a range by using a colon.
35
36 =head2 Examples
37
38 /msg &nick& AKILL DEL foo@bar.com
39 /msg &nick& AKILL DEL 5
40 /msg &nick& AKILL DEL 1,2,5,10
41 /msg &nick& AKILL DEL 1:5,7,9:11
42
43 =for Syntax: AKILL LIST S<FULL>
44
45 If F<FULL> is specified the F<AKILL> reasons will be shown.
46
47 =head2 Examples
48
49 /msg &nick& AKILL LIST
50 /msg &nick& AKILL LIST FULL
51
52 =for Syntax: AKILL SYNC
53
54 Sends all akills to all servers. This can be useful in case
55 services will be down or do not see a user as matching a
56 certain akill.
57
58
59 =head1 CLEARCHAN
60
61 F<CLEARCHAN> allows operators to clear
62 a channel in one of three ways: KICK,
63 which kicks all users from the channel, KILL,
64 which kills all users in the channel off the
65 network, or GLINE, which sets a one week
66 network ban against the hosts of all users in
67 the channel.
68
69 This command should not be used lightly.
70
71 =for Syntax: CLEARCHAN KICK|KILL|GLINE X<#channel> X<reason>
72
73 =head2 Examples
74
75 /msg &nick& CLEARCHAN KICK #warez warez is bad, mk?
76 /msg &nick& CLEARCHAN GLINE #warez you were warned!
77
78
79 =head1 CLONES
80
81 F<CLONES> keeps track of the number of clients
82 per IP address. Warnings are displayed in
83 the snoop channel about IP addresses with
84 more than 3 clients, and network bans may
85 optionally be set on IP addresses with more
86 than 5 clients.
87
88 F<CLONES> only works on clients whose IP address
89 Ermyth knows. If the ircd does not support
90 propagating IP addresses at all, F<CLONES> is
91 not useful; if IP addresses are not sent for
92 spoofed clients, those clients are exempt from
93 F<CLONES> checking.
94
95 =for Syntax: CLONES KLINE ON|OFF
96
97 Enables/disables banning IP addresses with more
98 than 5 clients from the network for one hour
99 (these bans are not added to the L<AKILL> list).
100 This setting is saved in etc/exempts.db and
101 defaults to off.
102
103 =for Syntax: CLONES LIST
104
105 Shows all IP addresses with more than 3 clients
106 with the number of clients and whether the IP
107 address is exempt.
108
109 =for Syntax: CLONES ADDEXEMPT X<ip> X<clones> X<reason>
110
111 Adds an IP address to the clone exemption list.
112 The IP address must match exactly with the form
113 used by the ircd (mind '::' shortening with IPv6).
114 The IP address can also be a CIDR mask, for example
115 192.168.1.0/24. Single IPs take priority above CIDR.
116 X<clones> is the number of clones allowed; it must be
117 at least 4. Warnings are sent if this number is
118 exceeded, and a network ban may be set if the number
119 is exceeded by 10 or more.
120 The reason is shown in F<LISTEXEMPT>.
121 The clone exemption list is stored in etc/exempts.db
122 and saved whenever it is modified.
123
124 =for Syntax: CLONES DELEXEMPT X<ip>
125
126 Removes an IP address from the clone exemption list.
127
128 =for Syntax: CLONES LISTEXEMPT
129
130 Shows the clone exemption list with reasons.
131
132 =head2 Examples
133
134 /msg &nick& CLONES ADDEXEMPT 127.0.0.1 100 local
135 /msg &nick& CLONES DELEXEMPT 192.168.1.2
136
137
138 =head1 COMPARE
139
140 F<COMPARE> allows operators with chan:auspex
141 privilege to view matching information
142 on two users, or two channels.
143
144 It is useful in clone detection,
145 amongst other situations.
146
147 =for Syntax: COMPARE X<#channel|user> X<#channel|user>
148
149 =head2 Examples
150
151 /msg &nick& COMPARE #warez #dcc
152 /msg &nick& COMPARE w00t Brik
153
154
155 =head1 IGNORE
156
157 Services has an ignore list which functions similarly to
158 the way a user can ignore another user. If a user matches
159 a mask in the ignore list and attempts to use services,
160 they will not get a reply.
161
162 ADD - Add a mask to the ignore list.
163 DEL - Delete a mask from the ignore list.
164 LIST - List all the entries in the ignore list.
165 CLEAR - Clear all the entries in the ignore list.
166
167 =head2 Examples
168
169 /msg &nick& IGNORE ADD pfish!*@* flooding services
170 /msg &nick& IGNORE DEL pfish!*@*
171 /msg &nick& IGNORE LIST
172 /msg &nick& IGNORE CLEAR
173
174
175 =head1 INJECT
176
177 F<INJECT> fakes data from the uplink. This
178 command is for debugging only and should
179 not be used unless you know what you're doing.
180
181 =for Syntax: INJECT X<parameters>
182
183 =head2 Examples
184
185 /msg &nick& INJECT :uplink.network.com PING :shrike.network.com
186 /msg &nick& INJECT :foo PRIVMSG &nick& :HELP INJECT
187
188
189 =head1 JUPE
190
191 F<JUPE> introduces a fake server with the given name, so
192 that the real server cannot connect. Jupes only last
193 as long as services is connected to the uplink and
194 can also (on most ircds) be removed with a simple
195 /squit command.
196
197 =for Syntax: JUPE X<server> X<reason>
198
199 =head2 Examples
200
201 /msg &nick& JUPE irc.blah.net very unstable server
202
203
204 =head1 MEMCHECK
205
206 F<MEMCHECK> invokes the valgrind memcheck if Ermyth
207 is running inside valgrind.
208
209 =for Syntax: MEMCHECK
210
211
212 =head1 MODE
213
214 F<MODE> allows for the editing of modes on a channel. Some networks
215 will most likely find this command to be unethical.
216
217 =for Syntax: MODE X<#channel> X<mode> S<parameters>
218
219 =head2 Examples
220
221 /msg &nick& MODE #heh -m
222 /msg &nick& MODE #heh +o foo
223
224
225 =head1 MODINSPECT
226
227 F<MODINSPECT> displays detailed information about a module.
228
229 The names can be gathered from the L<MODLIST> command. They
230 are not necessarily equal to the pathnames to load them
231 with L<MODLOAD>.
232
233 =for Syntax: MODINSPECT X<name>
234
235 =head2 Examples
236
237 /msg &nick& MODINSPECT protocol/charybdis
238
239
240 =head1 MODLIST
241
242 F<MODLIST> displays a listing of all loaded
243 modules and their addresses.
244
245 =for Syntax: MODLIST
246
247
248 =head1 MODLOAD
249
250 F<MODLOAD> enables one or more modules.
251
252 =for Syntax: MODLOAD X<path> S<path> ...
253
254 =head2 Examples
255
256 /msg &nick& MODLOAD contrib/fc_dice
257
258
259 =head1 MODRESTART
260
261 F<MODRESTART> unloads all non-permanent modules, then loads
262 all modules in the configuration file and all modules
263 directly in modules/.
264
265 operserv/main and operserv/modrestart are also untouched.
266
267 A full restart may be more reliable than a module restart.
268
269 =for Syntax: MODRESTART
270
271
272 =head1 MODUNLOAD
273
274 F<MODUNLOAD> unloads one or more modules. Not all modules
275 can be unloaded.
276
277 The names can be gathered from the L<MODLIST> command. They
278 can be re-enabled with L<MODLOAD>.
279
280 =for Syntax: MODUNLOAD X<name...>
281
282 =head2 Examples
283
284 /msg &nick& MODUNLOAD chanserv/register
285
286
287 =head1 NOOP
288
289 F<NOOP> allows you to deny IRCop access on a per-hostmask
290 or per-server basis. If a matching user opers up, they
291 will be killed.
292
293 =for Syntax: NOOP ADD HOSTMASK X<nick!user@host> S<reason>
294
295 =for Syntax: NOOP ADD SERVER X<mask> S<reason>
296
297 =head2 Examples
298
299 /msg &nick& NOOP ADD HOSTMASK *!*@some.spoof Abusive operator
300 /msg &nick& NOOP ADD SERVER bad.server Abusive admin
301
302 =for Syntax: NOOP DEL HOSTMASK X<nick!user@host>
303
304 =for Syntax: NOOP DEL SERVER X<mask>
305
306 =head2 Examples
307
308 /msg &nick& NOOP DEL HOSTMASK *!some@operator.host
309 /msg &nick& NOOP DEL SERVER bad.server
310
311 =for Syntax: NOOP LIST HOSTMASK
312
313 =for Syntax: NOOP LIST SERVER
314
315
316 =head1 RAKILL
317
318 F<RAKILL> allows for regex-based akills,
319 which are useful for removing clones
320 or botnets. The akills are not added
321 to &nick&'s list and last a week.
322
323 Be careful, as regex is very easy to
324 make mistakes with. Use L<RMATCH> first.
325 The regex syntax is exactly the same.
326
327 =for Syntax: RAKILL /X<pattern>/S<i> X<reason>
328
329 =head2 Examples
330
331 /msg &nick& RAKILL /^mS<oo|00>cow/i No moocows allowed.
332
333
334 =head1 RAW
335
336 F<RAW> injects data into the uplink. This
337 command is for debugging only and should
338 not be used unless you know what you're
339 doing.
340
341 =for Syntax: RAW X<parameters>
342
343 =head2 Examples
344
345 /msg &nick& RAW :&nick& OPERWALL :My admin is a loser
346
347
348 =head1 REHASH
349
350 F<REHASH> updates the database and reloads
351 the configuration file. You can perform
352 a rehash from system console with a kill -HUP
353 command.
354
355 =for Syntax: REHASH
356
357 =head2 Examples
358
359 /msg &nick& REHASH
360
361
362 =head1 RESTART
363
364 F<RESTART> shuts down services and restarts them.
365
366 =for Syntax: RESTART
367
368 =head2 Examples
369
370 /msg &nick& RESTART
371
372
373 =head1 RMATCH
374
375 F<RMATCH> shows all users whose
376 I<nick!user@host gecos>
377 matches the given POSIX extended
378 regular expression.
379
380 Instead of a slash, any character that
381 is not a letter, digit, whitespace or
382 backslash and does not occur in the pattern
383 can be used. An i after the pattern means
384 case insensitive matching.
385
386 =for Syntax: RMATCH /X<pattern>/S<i>
387
388 =head2 Examples
389
390 /msg &nick& RMATCH /^m(oo|00)cow/i
391 /msg &nick& RMATCH #^S<a-z]+!~?[a-z>+@#
392 /msg &nick& RMATCH /^S<^ ]* [^ >*$/
393
394
395 =head1 RNC
396
397 F<RNC> shows the most common realnames on the network.
398
399 =for Syntax: RNC S<number>
400
401 =head2 Examples
402
403 /msg &nick& RNC 10
404
405
406 =head1 RWATCH
407
408 F<RWATCH> maintains a list of regular expressions,
409 which the I<nick!user@host gecos>
410 of all connecting clients are matched against.
411 Matching clients can be displayed in the snoop
412 channel and/or banned from the network. These
413 network bans are set on *@host, last 24 hours
414 and are not added to the L<AKILL> list.
415 The F<RWATCH> list is stored in etc/rwatch.db and
416 saved whenever it is modified.
417
418 See F<RMATCH> for more information about regular
419 expression syntax.
420
421 =for Syntax: RWATCH ADD /X<pattern>/S<i> X<reason>
422
423 Adds a regular expression to the F<RWATCH> list.
424 The reason is shown in snoop notices and kline reasons.
425
426 =for Syntax: RWATCH DEL /X<pattern>/S<i>
427
428 Removes a regular expression from the F<RWATCH> list.
429
430 =for Syntax: RWATCH LIST
431
432 Shows the F<RWATCH> list. The meaning of the letters is:
433
434 i - case insensitive match
435 S - matching clients are shown in the snoop channel
436 K - matching clients are banned from the network
437
438 =for Syntax: RWATCH SET /X<pattern>/S<i> X<options>
439
440 Changes the action for a regular expression. Possible
441 values for X<options> are:
442
443 SNOOP - enables display in the snoop channel
444 NOSNOOP - disables display in the snoop channel
445 KLINE - enables network bans
446 NOKLINE - disables network bans
447
448 =head2 Examples
449
450 /msg &nick& RWATCH ADD /^m(oo|00)cow/i moocow figure
451 /msg &nick& RWATCH DEL /^m(oo|00)cow/i
452
453
454 =head1 SHUTDOWN
455
456 F<SHUTDOWN> shuts down services. Services will
457 not reconnect or restart.
458
459 =for Syntax: SHUTDOWN
460
461 =head2 Examples
462
463 /msg &nick& SHUTDOWN
464
465
466 =head1 SOPER
467
468 F<SOPER> allows manipulation of services operator privileges.
469
470 F<SOPER LIST> shows all accounts with services operator
471 privileges, both from the configuration file and the
472 this command. It is similar to /stats o &nick&.
473
474 F<SOPER LISTCLASS> shows all defined oper classes. Use
475 the L<SPECS> command to view the privileges associated
476 with an oper class.
477
478 F<SOPER ADD> grants services operator privileges to an
479 account. The granted privileges are described by an
480 oper class.
481
482 F<SOPER DEL> removes services operator privileges from
483 an account.
484
485 It is not possible to modify accounts with
486 operator { } blocks in the configuration file.
487
488 =for Syntax: SOPER LIST|LISTCLASS
489
490 =for Syntax: SOPER ADD X<account> X<operclass>
491
492 =for Syntax: SOPER DEL X<account>
493
494 =head2 Examples
495
496 /msg &nick& SOPER LIST
497 /msg &nick& SOPER ADD anoper sra
498 /msg &nick& SOPER DEL abusiveoper
499
500
501 =head1 SPECS
502
503 F<SPECS> shows the privileges you have in services.
504
505 =for Syntax: SPECS
506
507 It is also possible to see the privileges of other
508 online users or of oper classes.
509
510 =for Syntax: SPECS USER X<nick>
511
512 =for Syntax: SPECS OPERCLASS X<classname>
513
514 =head2 Examples
515
516 /msg &nick& SPECS USER w00t
517
518
519 =head1 UPDATE
520
521 F<UPDATE> flushes the database to disk.
522
523 =for Syntax: UPDATE
524
525 =head2 Examples
526
527 /msg &nick& UPDATE
528
529
530 =head1 UPTIME
531
532 F<UPTIME> shows services uptime and the number of
533 registered nicks and channels.
534
535 =for Syntax: UPTIME