1
<chapter id="commands">
2
<title>Operator Commands</title>
4
<title>Network management commands</title>
7
All commands and names are case insensitive.
8
Parameters consisting of one or more separate letters,
9
such as in MODE, STATS and WHO, are case sensitive.
13
<title>CONNECT</title>
14
<cmdsynopsis><command>CONNECT</command>
15
<arg choice=plain><replaceable>target</replaceable></arg>
16
<arg><replaceable>port</replaceable></arg>
17
<arg><replaceable>source</replaceable></arg>
20
Initiate a connection attempt to server <replaceable class=parameter>target</replaceable>. If a port is
21
given, connect to that port on the target, otherwise use the one given in <filename>ircd.conf</filename>. If
22
<replaceable class=parameter>source</replaceable> is given, tell that server to initiate the connection
23
attempt, otherwise it will be made from the server you are attached to.
26
To use the default port with <replaceable class=parameter>source</replaceable>,
27
specify 0 for <replaceable class=parameter>port</replaceable>.
33
<command>SQUIT</command>
34
<arg choice=plain><replaceable>server</replaceable></arg>
35
<arg><replaceable>reason</replaceable></arg>
38
Closes down the link to <replaceable>server</replaceable> from this side of the network. If a reason is
39
given, it will be sent out in the server notices on both sides of the link.
45
<command>REHASH</command>
55
<arg>REJECTCACHE</arg>
58
<arg><replaceable>server</replaceable></arg>
61
With no parameter given, <filename>ircd.conf</filename> will be reread and parsed.
62
The server argument is a wildcard match of server names.
65
<title>Parameters</title>
69
<para>Rereads <filename>kline.conf</filename>, <filename>dline.conf</filename>, <filename>xline.conf</filename>, <filename>resv.conf</filename> and their .perm variants</para>
75
<para>Reread <filename>/etc/resolv.conf</filename>.</para>
81
<para>Reload the MOTD file</para>
87
<para>Reload the operator MOTD file</para>
93
<para>Clears temporary K:lines.</para>
99
<para>Clears temporary D:lines.</para>
105
<para>Clears temporary X:lines.</para>
111
<para>Clears temporary reservations.</para>
115
<term>REJECTCACHE</term>
117
<para>Clears the client rejection cache.</para>
123
<para>Refreshes the help system cache.</para>
129
<title>RESTART</title>
131
<command>RESTART</command>
132
<arg choice=plain><replaceable>server</replaceable></arg>
135
Cause an immediate total shutdown of the IRC server, and restart from scratch as if it had just been executed.
138
This reexecutes the ircd using the compiled-in path, visible
142
<para>This command cannot be used remotely. The server name is used only as a safety measure.</para>
148
<command>DIE</command>
149
<arg choice=plain><replaceable>server</replaceable></arg>
151
<para>Immediately terminate the IRC server, after sending notices to all connected clients and servers</para>
153
<para>This command cannot be used remotely. The server name is used only as a safety measure.</para>
159
<command>SET</command>
161
<arg>ADMINSTRING</arg>
163
<arg>AUTOCONNALL</arg>
164
<arg>FLOODCOUNT</arg>
165
<arg>IDENTTIMEOUT</arg>
167
<arg>OPERSTRING</arg>
172
<arg>SPLITUSERS</arg>
174
<arg choice=plain><replaceable>value</replaceable></arg>
176
<para>The SET command sets a runtime-configurable value.</para>
178
Most of the <filename>ircd.conf</filename> equivalents have
179
a default_ prefix and are only read on startup. SET is the only
180
way to change these at run time.
183
Most of the values can be queried by omitting
184
<replaceable>value</replaceable>.
188
<term>ADMINSTRING</term>
190
Sets string shown in WHOIS for admins.
191
(umodes +o and +a set, umode +S not set).
195
<term>AUTOCONN</term>
197
Sets auto-connect on or off for a particular server.
198
Takes two parameters, server name and new state.
200
To see these values, use /stats c.
201
Changes to this are lost on a rehash.
205
<term>AUTOCONNALL</term>
207
Globally sets auto-connect on or off. If disabled, no automatic
208
connections are done; if enabled, automatic connections are done
209
following the rules for them.
213
<term>FLOODCOUNT</term>
215
The number of lines allowed to be sent to a connection before
216
throttling it due to flooding.
217
Note that this variable is used for both
218
channels and clients.
220
For channels, op or voice overrides this; for users, IRC
221
operator status or op or voice on a common channel overrides
226
<term>IDENTTIMEOUT</term>
228
Timeout for requesting ident from a client.
234
Sets the maximum number of connections
235
to <replaceable>value</replaceable>.
237
This number cannot exceed maxconnections - MAX_BUFFER.
238
maxconnections is the rlimit for number of open files.
239
MAX_BUFFER is defined in config.h, normally 60.
241
MAXCLIENTS is an alias for this.
245
<term>OPERSTRING</term>
247
Sets string shown in WHOIS for opers
248
(umode +o set, umodes +a and +S not set).
254
Sets how many join/parts to channels
255
constitutes a possible spambot.
259
<term>SPAMTIME</term>
261
Below this time on a channel
262
counts as a join/part as above.
266
<term>SPLITMODE</term>
268
Sets splitmode to <replaceable>value</replaceable>:
272
<listitem><para>splitmode is permanently on</para></listitem>
276
<listitem><para>splitmode is permanently off (default if no_create_on_split and no_join_on_split are disabled)</para></listitem>
280
<listitem><para>ircd chooses splitmode based on SPLITUSERS and SPLITNUM (default if no_create_on_split or no_join_on_split are enabled)</para></listitem>
286
<term>SPLITUSERS</term>
288
Sets the minimum amount of users needed to
289
deactivate automatic splitmode.
293
<term>SPLITNUM</term>
295
Sets the minimum amount of servers needed to
296
deactivate automatic splitmode.
297
Only servers that have finished bursting count for this.
303
<sect1 id="usercommands">
304
<title>User management commands</title>
308
<command>KILL</command>
309
<arg choice=plain><replaceable>nick</replaceable></arg>
310
<arg><replaceable>reason</replaceable></arg>
313
Disconnects the user with the given nick from the server they are connected to,
314
with the reason given, if present, and broadcast a server notice announcing this.
317
Your nick and the reason will appear on channels.
323
Closes all connections from and to clients and servers who have not completed registering.
329
<command>KLINE</command>
330
<arg><replaceable>length</replaceable></arg>
332
<arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg>
333
<arg choice=plain><replaceable>user</replaceable>@<replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg>
335
<arg>ON <replaceable>servername</replaceable></arg>
336
<arg>:<replaceable>reason</replaceable></arg>
339
Adds a K:line to <filename>kline.conf</filename> to ban the given user@host from using that
343
If the optional parameter <replaceable>length</replaceable> is given, the K:line will
344
be temporary (i.e. it will not be stored on disk) and last that
348
If an IP address is given, the ban will be against all hosts matching that IP regardless
349
of DNS. The IP address can be given as a full address (192.168.0.1), as a CIDR mask
350
(192.168.0.0/24), or as a glob (192.168.0.*).
353
All clients matching the K:line will be disconnected from the server immediately.
356
If a reason is specified, it will be sent to the client when they are disconnected, and
357
whenever a connection is attempted which is banned.
360
If the ON part is specified, the K:line is set on servers matching
361
the given mask (provided a matching shared{} block exists there).
362
Otherwise, if specified in a cluster{} block, the K:Line will be
363
propagated across the network accordingly.
367
<title>UNKLINE</title>
369
<command>UNKLINE</command>
370
<arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg>
371
<arg>ON <replaceable>servername</replaceable></arg>
374
Will attempt to remove a K:line matching user@host from <filename>kline.conf</filename>, and will flush
381
<command>XLINE</command>
382
<arg><replaceable>length</replaceable></arg>
383
<arg choice=plain><replaceable>mask</replaceable></arg>
384
<arg>ON <replaceable>servername</replaceable></arg>
385
<arg>:<replaceable>reason</replaceable></arg>
388
Works similarly to KLINE, but matches against the real name field.
389
The wildcards are * (any sequence), ? (any character),
390
# (a digit) and @ (a letter); wildcard characters can be
391
escaped with a backslash. The sequence \s matches a space.
394
All clients matching the X:line will be disconnected from the server immediately.
397
The reason is never sent to users. Instead, they will be exited
398
with <quote>Bad user info</quote>.
401
If the ON part is specified, the X:line is set on servers matching
402
the given mask (provided a matching shared{} block exists there).
403
Otherwise, if specified in a cluster{} block, the X:line will be
404
propagated across the network accordingly.
408
<title>UNXLINE</title>
410
<command>UNXLINE</command>
411
<arg choice=plain><replaceable>mask</replaceable></arg>
412
<arg>ON <replaceable>servername</replaceable></arg>
415
Will attempt to remove an X:line from <filename>xline.conf</filename>, and will flush
422
<command>RESV</command>
423
<arg><replaceable>length</replaceable></arg>
425
<arg choice=plain><replaceable>channel</replaceable></arg>
426
<arg choice=plain><replaceable>mask</replaceable></arg>
428
<arg>ON <replaceable>servername</replaceable></arg>
429
<arg>:<replaceable>reason</replaceable></arg>
432
If used on a channel, <quote>jupes</quote> the channel locally. Joins to the
433
channel will be disallowed and generate a server notice on +y, and
434
users will not be able to send to the channel. Channel jupes cannot
438
If used on a nickname mask, prevents local users from using a nick
439
matching the mask (the same wildcard characters as xlines). There
440
is no way to exempt the initial nick from this.
443
In neither case will current users of the nick or channel be
444
kicked or disconnected.
447
This facility is not designed to make certain nicks
448
or channels oper-only.
451
The reason is never sent to users.
454
If the ON part is specified, the resv is set on servers matching
455
the given mask (provided a matching shared{} block exists there).
456
Otherwise, if specified in a cluster{} block, the resv will be
457
propagated across the network accordingly.
461
<title>UNRESV</title>
463
<command>UNRESV</command>
465
<arg choice=plain><replaceable>channel</replaceable></arg>
466
<arg choice=plain><replaceable>mask</replaceable></arg>
468
<arg>ON <replaceable>servername</replaceable></arg>
471
Will attempt to remove a resv from <filename>resv.conf</filename>, and will flush
478
<command>DLINE</command>
479
<arg><replaceable>length</replaceable></arg>
480
<arg choice=plain><replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg>
481
<arg>ON <replaceable>servername</replaceable></arg>
482
<arg>:<replaceable>reason</replaceable></arg>
485
Adds a D:line to <filename>dline.conf</filename>, which will deny any connections
486
from the given IP address.
487
The IP address can be given as a full address (192.168.0.1) or
488
as a CIDR mask (192.168.0.0/24).
491
If the optional parameter <replaceable>length</replaceable> is given, the D:line will
492
be temporary (i.e. it will not be stored on disk) and last that
496
All clients matching the D:line will be disconnected from the server immediately.
499
If a reason is specified, it will be sent to the client when they are disconnected, and,
500
if dline_reason is enabled,
501
whenever a connection is attempted which is banned.
504
D:lines are less load on a server, and may be more appropriate if somebody is flooding
508
If the ON part is specified, the D:line is set on servers matching
509
the given mask (provided a matching shared{} block exists there,
510
which is not the case by default).
511
Otherwise, the D:Line will be set on the local server only.
514
Only exempt{} blocks exempt from D:lines.
515
Being a server or having kline_exempt in auth{} does
516
<emphasis>not</emphasis> exempt (different from K/G/X:lines).
520
<title>UNDLINE</title>
522
<command>UNDLINE</command>
523
<arg choice=plain><replaceable>a.b.c.d</replaceable></arg>
524
<arg>ON <replaceable>servername</replaceable></arg>
527
Will attempt to remove a D:line from <filename>dline.conf</filename>, and will flush
532
<title>TESTGECOS</title>
534
<command>TESTGECOS</command>
535
<arg choice=plain><replaceable>gecos</replaceable></arg>
538
Looks up X:Lines matching the given gecos.
542
<title>TESTLINE</title>
544
<command>TESTLINE</command>
545
<arg><replaceable>nick</replaceable>!</arg>
547
<arg choice=plain><replaceable>user</replaceable>@<replaceable>host</replaceable></arg>
548
<arg choice=plain><replaceable>a</replaceable>.<replaceable>b</replaceable>.<replaceable>c</replaceable>.<replaceable>d</replaceable></arg>
552
Looks up the given hostmask or IP address and reports back on any auth{} blocks, D: or K: lines found.
553
If <replaceable>nick</replaceable> is given, also searches for
557
For temporary items the number of minutes until the item expires
558
is shown (as opposed to the hit count in STATS q/Q/x/X).
561
This command will not perform DNS lookups; for best
562
results you must testline a host and its IP form.
565
The given username should begin with a tilde (~) if identd is not
566
in use. As of charybdis 2.1.1, no_tilde and username truncation will
567
be taken into account like in the normal client access check.
570
As of charybdis 2.2.0, a channel name can be specified and the
571
RESV will be returned, if there is one.
575
<title>TESTMASK</title>
577
<command>TESTMASK</command>
578
<arg choice=plain><replaceable>hostmask</replaceable></arg>
579
<arg><replaceable>gecos</replaceable></arg>
582
Searches the network for users that match the hostmask and gecos given,
583
returning the number of matching users on this server and other servers.
586
The <replaceable>hostmask</replaceable> is of the form user@host
587
or user@ip/cidr with * and ? wildcards, optionally preceded by
591
The <replaceable>gecos</replaceable> field accepts the same wildcards
595
The IP address checked against is 255.255.255.255 if the IP address
596
is unknown (remote client on a TS5 server) or 0 if the IP address
597
is hidden (auth{} spoof).
601
<title>LUSERS</title>
603
<command>LUSERS</command>
604
<arg><replaceable>mask</replaceable></arg>
606
<arg><replaceable>nick</replaceable></arg>
607
<arg><replaceable>server</replaceable></arg>
611
Shows various user and channel counts.
614
The <replaceable>mask</replaceable> parameter is obsolete
615
but must be used when querying a remote server.
621
<command>TRACE</command>
623
<arg><replaceable>server</replaceable></arg>
624
<arg><replaceable>nick</replaceable></arg>
626
<arg><replaceable>location</replaceable></arg>
629
With no argument or one argument which is the current server,
630
TRACE gives a list of all connections to the current server
631
and a summary of connection classes.
634
With one argument which is another server, TRACE displays the path
635
to the specified server, and all servers, opers and -i users
636
on that server, along with a summary of connection classes.
639
With one argument which is a client, TRACE displays the
640
path to that client, and that client's information.
643
If location is given, the command is executed on that server;
644
no path is displayed.
647
When listing connections, type, name and class is shown
648
in addition to information depending on the type:
651
<title>TRACE types</title>
655
A server we are trying to make a TCP connection to.
661
A server we have established a TCP connection to, but is not
668
An incoming connection that has not yet registered as
669
a user or a server (<quote>unknown</quote>).
670
Shows the username, hostname, IP address
671
and the time the connection has been open. It is possible
672
that the ident or DNS lookups have not completed yet, and in
673
any case no tildes are shown here.
674
Unknown connections may not have a name yet.
680
A registered unopered user.
681
Shows the username, hostname, IP address, the time the client
682
has not sent anything (as in STATS l) and the time the user has
683
been idle (from PRIVMSG only, as in WHOIS).
689
Like User, but opered.
696
Shows the number of servers and users reached via this link,
697
who made this connection and the time the server has not sent
704
<title>ETRACE</title>
706
<command>ETRACE</command>
707
<arg><replaceable>nick</replaceable></arg>
710
Shows client information about the given target, or about all local clients if
711
no target is specified.
717
<command>PRIVS</command>
718
<arg><replaceable>nick</replaceable></arg>
721
Displays effective operator privileges for
722
the specified nick, or for yourself if no nick is
723
given. This includes all privileges from the operator
724
block, the name of the operator block and those
725
privileges from the auth block that have an effect
726
after the initial connection.
729
The exact output depends on the server the nick is on,
730
see the matching version of this document.
731
If the remote server does not support this extension, you will not
736
<title>MASKTRACE</title>
738
<command>MASKTRACE</command>
739
<arg choice=plain><replaceable>hostmask</replaceable></arg>
740
<arg><replaceable>gecos</replaceable></arg>
743
Searches the local server or network for users that match the hostmask and gecos given.
744
Network searches require the oper_spy privilege and an '!'
746
The matching works the same way as TESTMASK.
749
The <replaceable>hostmask</replaceable> is of the form user@host
750
or user@ip/cidr with * and ? wildcards, optionally preceded by
754
The <replaceable>gecos</replaceable> field accepts the same wildcards
758
The IP address field contains 255.255.255.255 if the IP address
759
is unknown (remote client on a TS5 server) or 0 if the IP address
760
is hidden (auth{} spoof).
764
<title>CHANTRACE</title>
766
<command>CHANTRACE</command>
767
<arg choice=plain><replaceable>channel</replaceable></arg>
770
Displays information about users in a channel.
771
Opers with the oper_spy privilege
772
can get the information without being on the channel,
773
by prefixing the channel name with an '!'.
776
The IP address field contains 255.255.255.255 if the IP address
777
is unknown (remote client on a TS5 server) or 0 if the IP address
778
is hidden (auth{} spoof).
784
<command>SCAN UMODES</command>
785
<arg choice=plain>+<replaceable>modes</replaceable>-<replaceable>modes</replaceable></arg>
789
<arg>list-max <replaceable>number</replaceable></arg>
790
<arg>mask <replaceable>nick!user@host</replaceable></arg>
793
Searches the local server or network for users that have the umodes given with + and do not have the umodes given with -.
794
no-list disables the listing of matching users and only shows the count.
795
list enables the listing (default).
796
global extends the search to the entire network instead of local users only.
797
list-max limits the listing of matching users to the given amount.
798
mask causes only users matching the given nick!user@host mask
799
to be selected. Only the displayed host is considered, not the
800
IP address or real host behind dynamic spoofs.
803
The IP address field contains 255.255.255.255 if the IP address
804
is unknown (remote client on a TS5 server) or 0 if the IP address
805
is hidden (auth{} spoof).
808
Network searches where a listing is given
809
are operspy commands.
813
<title>CHGHOST</title>
815
<command>CHGHOST</command>
816
<arg choice=plain><replaceable>nick</replaceable></arg>
817
<arg choice=plain><replaceable>value</replaceable></arg>
820
Set the hostname associated with a particular nick for the duration of this session.
821
This command is disabled by default because of the abuse potential
822
and little practical use.
826
<sect1 id="misccommands">
827
<title>Miscellaneous commands</title>
831
<command>ADMIN</command>
833
<arg><replaceable>nick</replaceable></arg>
834
<arg><replaceable>server</replaceable></arg>
838
Shows the information in the admin{} block.
844
<command>INFO</command>
846
<arg><replaceable>nick</replaceable></arg>
847
<arg><replaceable>server</replaceable></arg>
851
Shows information about the authors of the IRC server, and
852
some information about this server instance.
853
Opers also get a list of configuration options.
859
<command>TIME</command>
861
<arg><replaceable>nick</replaceable></arg>
862
<arg><replaceable>server</replaceable></arg>
866
Shows the local time on the given server, in a human-readable format.
870
<title>VERSION</title>
872
<command>VERSION</command>
874
<arg><replaceable>nick</replaceable></arg>
875
<arg><replaceable>server</replaceable></arg>
879
Shows version information, a few compile/config options,
880
the SID and the 005 numerics.
881
The 005 numeric will be remapped to 105 for remote requests.
887
<command>STATS</command>
888
<arg><replaceable>type</replaceable></arg>
890
<arg><replaceable>nick</replaceable></arg>
891
<arg><replaceable>server</replaceable></arg>
895
Display various statistics and configuration information.
898
<title>Values for <replaceable>type</replaceable></title>
902
<para>Show DNS servers</para>
908
<para>Show active nick delays</para>
914
<para>Show hash statistics</para>
920
<para>Show connect blocks</para>
926
<para>Show temporary D:lines</para>
932
<para>Show permanent D:lines</para>
938
<para>Show exempt blocks (exceptions to D:lines)</para>
944
<para>Show events</para>
950
<para>Show file descriptors</para>
956
<para>Show hub_mask/leaf_mask</para>
962
<para>Show auth blocks, or matched auth blocks</para>
968
<para>Show temporary K:lines, or matched K:lines</para>
974
<para>Show permanent K:lines, or matched K:lines</para>
981
Show hostname and link information about the given nick.
982
With a server name, show information about opers and servers
983
on that server; opers get information about all local
984
connections if they query their own server.
985
No hostname is shown for server connections.
992
<para>Like l, but show IP address instead of hostname</para>
998
<para>Show commands and their usage statistics (total counts, total bytes, counts from server connections)</para>
1004
<para>Show blacklist blocks (DNS blacklists) with hit counts since last rehash and (parenthesized) reference counts. The reference count shows how many clients are waiting on a lookup of this blacklist or have been found and are waiting on registration to complete.</para>
1010
<para>Show operator blocks</para>
1016
<para>Show privset blocks</para>
1022
<para>Show logged on network operators which are not set AWAY.</para>
1028
<para>Show listen blocks (ports)</para>
1034
<para>Show temporarily resv'ed nicks and channels with hit counts</para>
1040
<para>Show permanently resv'ed nicks and channels with hit counts since last rehash bans</para>
1046
<para>Show resource usage by the ircd</para>
1052
<para>Show generic server statistics about local connections</para>
1058
<para>Show server uptime</para>
1064
<para>Show shared (c), cluster (C) and service (s) blocks</para>
1070
<para>Show connected servers and brief status</para>
1076
<para>Show temporary X:lines with hit counts</para>
1082
<para>Show permanent X:lines with hit counts since last rehash bans</para>
1088
<para>Show class blocks</para>
1094
<para>Show memory usage statistics</para>
1100
<para>Show ziplinks statistics</para>
1106
<para>Show connected servers and link information about them</para>
1112
<title>WALLOPS</title>
1114
<command>WALLOPS</command>
1115
<arg choice=plain>:<replaceable>message</replaceable></arg>
1118
Sends a WALLOPS message to all users who have the +w umode set. This is for
1119
things you don't mind the whole network knowing about.
1123
<title>OPERWALL</title>
1125
<command>OPERWALL</command>
1126
<arg choice=plain>:<replaceable>message</replaceable></arg>
1129
Sends an OPERWALL message to all opers who have the +z umode set. +z is restricted,
1130
OPERWALL should be considered private communications.
1135
<!-- Keep this comment at the end of the file
1140
sgml-namecase-general:t
1141
sgml-general-insert-case:lower
1142
sgml-minimize-attributes:nil
1143
sgml-always-quote-attributes:t
1146
sgml-parent-document: ("charybdis-oper-guide.sgml" "book")
1147
sgml-exposed-tags:nil
1148
sgml-local-ecat-files:nil