=head1 AKILL F allows you to maintain network-wide bans a la DALnet AKILL. Services will keep your AKILLs stored and allow for easy management. =for Syntax: AKILL ADD X [!P|!T X] X If the !P token is specified the F will never expire (permanent). If the !T token is specified expire time must follow, in minutes, hours ("h"), days ("d") or weeks ("w"). =head2 Examples /msg &nick& AKILL ADD foo !T 5 bar reason /msg &nick& AKILL ADD foo !T 3d bar reason /msg &nick& AKILL ADD foo@bar.com !P foo reason /msg &nick& AKILL ADD foo@bar.com foo reason The first example looks for the user with a nickname of "foo" and adds a 5 minute F for "bar reason." The second example is similar but adds the F for 3 days instead of 5 minutes. The third example adds a permanent F on foo@bar.com for "foo reason." The fourth example adds a F on foo@bar.com for the duration specified in the configuration file for "foo reason." =for Syntax: AKILL DEL X If number is specified it correlates with the number on F. You may specify multiple numbers by separating with commas. You may specify a range by using a colon. =head2 Examples /msg &nick& AKILL DEL foo@bar.com /msg &nick& AKILL DEL 5 /msg &nick& AKILL DEL 1,2,5,10 /msg &nick& AKILL DEL 1:5,7,9:11 =for Syntax: AKILL LIST S If F is specified the F reasons will be shown. =head2 Examples /msg &nick& AKILL LIST /msg &nick& AKILL LIST FULL =for Syntax: AKILL SYNC Sends all akills to all servers. This can be useful in case services will be down or do not see a user as matching a certain akill. =head1 CLEARCHAN F allows operators to clear a channel in one of three ways: KICK, which kicks all users from the channel, KILL, which kills all users in the channel off the network, or GLINE, which sets a one week network ban against the hosts of all users in the channel. This command should not be used lightly. =for Syntax: CLEARCHAN KICK|KILL|GLINE X<#channel> X =head2 Examples /msg &nick& CLEARCHAN KICK #warez warez is bad, mk? /msg &nick& CLEARCHAN GLINE #warez you were warned! =head1 CLONES F keeps track of the number of clients per IP address. Warnings are displayed in the snoop channel about IP addresses with more than 3 clients, and network bans may optionally be set on IP addresses with more than 5 clients. F only works on clients whose IP address Ermyth knows. If the ircd does not support propagating IP addresses at all, F is not useful; if IP addresses are not sent for spoofed clients, those clients are exempt from F checking. =for Syntax: CLONES KLINE ON|OFF Enables/disables banning IP addresses with more than 5 clients from the network for one hour (these bans are not added to the L list). This setting is saved in etc/exempts.db and defaults to off. =for Syntax: CLONES LIST Shows all IP addresses with more than 3 clients with the number of clients and whether the IP address is exempt. =for Syntax: CLONES ADDEXEMPT X X X Adds an IP address to the clone exemption list. The IP address must match exactly with the form used by the ircd (mind '::' shortening with IPv6). The IP address can also be a CIDR mask, for example 192.168.1.0/24. Single IPs take priority above CIDR. X is the number of clones allowed; it must be at least 4. Warnings are sent if this number is exceeded, and a network ban may be set if the number is exceeded by 10 or more. The reason is shown in F. The clone exemption list is stored in etc/exempts.db and saved whenever it is modified. =for Syntax: CLONES DELEXEMPT X Removes an IP address from the clone exemption list. =for Syntax: CLONES LISTEXEMPT Shows the clone exemption list with reasons. =head2 Examples /msg &nick& CLONES ADDEXEMPT 127.0.0.1 100 local /msg &nick& CLONES DELEXEMPT 192.168.1.2 =head1 COMPARE F allows operators with chan:auspex privilege to view matching information on two users, or two channels. It is useful in clone detection, amongst other situations. =for Syntax: COMPARE X<#channel|user> X<#channel|user> =head2 Examples /msg &nick& COMPARE #warez #dcc /msg &nick& COMPARE w00t Brik =head1 IGNORE Services has an ignore list which functions similarly to the way a user can ignore another user. If a user matches a mask in the ignore list and attempts to use services, they will not get a reply. ADD - Add a mask to the ignore list. DEL - Delete a mask from the ignore list. LIST - List all the entries in the ignore list. CLEAR - Clear all the entries in the ignore list. =head2 Examples /msg &nick& IGNORE ADD pfish!*@* flooding services /msg &nick& IGNORE DEL pfish!*@* /msg &nick& IGNORE LIST /msg &nick& IGNORE CLEAR =head1 INJECT F fakes data from the uplink. This command is for debugging only and should not be used unless you know what you're doing. =for Syntax: INJECT X =head2 Examples /msg &nick& INJECT :uplink.network.com PING :shrike.network.com /msg &nick& INJECT :foo PRIVMSG &nick& :HELP INJECT =head1 JUPE F introduces a fake server with the given name, so that the real server cannot connect. Jupes only last as long as services is connected to the uplink and can also (on most ircds) be removed with a simple /squit command. =for Syntax: JUPE X X =head2 Examples /msg &nick& JUPE irc.blah.net very unstable server =head1 MEMCHECK F invokes the valgrind memcheck if Ermyth is running inside valgrind. =for Syntax: MEMCHECK =head1 MODE F allows for the editing of modes on a channel. Some networks will most likely find this command to be unethical. =for Syntax: MODE X<#channel> X S =head2 Examples /msg &nick& MODE #heh -m /msg &nick& MODE #heh +o foo =head1 MODINSPECT F displays detailed information about a module. The names can be gathered from the L command. They are not necessarily equal to the pathnames to load them with L. =for Syntax: MODINSPECT X =head2 Examples /msg &nick& MODINSPECT protocol/charybdis =head1 MODLIST F displays a listing of all loaded modules and their addresses. =for Syntax: MODLIST =head1 MODLOAD F enables one or more modules. =for Syntax: MODLOAD X S ... =head2 Examples /msg &nick& MODLOAD contrib/fc_dice =head1 MODRESTART F unloads all non-permanent modules, then loads all modules in the configuration file and all modules directly in modules/. operserv/main and operserv/modrestart are also untouched. A full restart may be more reliable than a module restart. =for Syntax: MODRESTART =head1 MODUNLOAD F unloads one or more modules. Not all modules can be unloaded. The names can be gathered from the L command. They can be re-enabled with L. =for Syntax: MODUNLOAD X =head2 Examples /msg &nick& MODUNLOAD chanserv/register =head1 NOOP F allows you to deny IRCop access on a per-hostmask or per-server basis. If a matching user opers up, they will be killed. =for Syntax: NOOP ADD HOSTMASK X S =for Syntax: NOOP ADD SERVER X S =head2 Examples /msg &nick& NOOP ADD HOSTMASK *!*@some.spoof Abusive operator /msg &nick& NOOP ADD SERVER bad.server Abusive admin =for Syntax: NOOP DEL HOSTMASK X =for Syntax: NOOP DEL SERVER X =head2 Examples /msg &nick& NOOP DEL HOSTMASK *!some@operator.host /msg &nick& NOOP DEL SERVER bad.server =for Syntax: NOOP LIST HOSTMASK =for Syntax: NOOP LIST SERVER =head1 RAKILL F allows for regex-based akills, which are useful for removing clones or botnets. The akills are not added to &nick&'s list and last a week. Be careful, as regex is very easy to make mistakes with. Use L first. The regex syntax is exactly the same. =for Syntax: RAKILL /X/S X =head2 Examples /msg &nick& RAKILL /^mScow/i No moocows allowed. =head1 RAW F injects data into the uplink. This command is for debugging only and should not be used unless you know what you're doing. =for Syntax: RAW X =head2 Examples /msg &nick& RAW :&nick& OPERWALL :My admin is a loser =head1 REHASH F updates the database and reloads the configuration file. You can perform a rehash from system console with a kill -HUP command. =for Syntax: REHASH =head2 Examples /msg &nick& REHASH =head1 RESTART F shuts down services and restarts them. =for Syntax: RESTART =head2 Examples /msg &nick& RESTART =head1 RMATCH F shows all users whose I matches the given POSIX extended regular expression. Instead of a slash, any character that is not a letter, digit, whitespace or backslash and does not occur in the pattern can be used. An i after the pattern means case insensitive matching. =for Syntax: RMATCH /X/S =head2 Examples /msg &nick& RMATCH /^m(oo|00)cow/i /msg &nick& RMATCH #^S+@# /msg &nick& RMATCH /^S<^ ]* [^ >*$/ =head1 RNC F shows the most common realnames on the network. =for Syntax: RNC S =head2 Examples /msg &nick& RNC 10 =head1 RWATCH F maintains a list of regular expressions, which the I of all connecting clients are matched against. Matching clients can be displayed in the snoop channel and/or banned from the network. These network bans are set on *@host, last 24 hours and are not added to the L list. The F list is stored in etc/rwatch.db and saved whenever it is modified. See F for more information about regular expression syntax. =for Syntax: RWATCH ADD /X/S X Adds a regular expression to the F list. The reason is shown in snoop notices and kline reasons. =for Syntax: RWATCH DEL /X/S Removes a regular expression from the F list. =for Syntax: RWATCH LIST Shows the F list. The meaning of the letters is: i - case insensitive match S - matching clients are shown in the snoop channel K - matching clients are banned from the network =for Syntax: RWATCH SET /X/S X Changes the action for a regular expression. Possible values for X are: SNOOP - enables display in the snoop channel NOSNOOP - disables display in the snoop channel KLINE - enables network bans NOKLINE - disables network bans =head2 Examples /msg &nick& RWATCH ADD /^m(oo|00)cow/i moocow figure /msg &nick& RWATCH DEL /^m(oo|00)cow/i =head1 SHUTDOWN F shuts down services. Services will not reconnect or restart. =for Syntax: SHUTDOWN =head2 Examples /msg &nick& SHUTDOWN =head1 SOPER F allows manipulation of services operator privileges. F shows all accounts with services operator privileges, both from the configuration file and the this command. It is similar to /stats o &nick&. F shows all defined oper classes. Use the L command to view the privileges associated with an oper class. F grants services operator privileges to an account. The granted privileges are described by an oper class. F removes services operator privileges from an account. It is not possible to modify accounts with operator { } blocks in the configuration file. =for Syntax: SOPER LIST|LISTCLASS =for Syntax: SOPER ADD X X =for Syntax: SOPER DEL X =head2 Examples /msg &nick& SOPER LIST /msg &nick& SOPER ADD anoper sra /msg &nick& SOPER DEL abusiveoper =head1 SPECS F shows the privileges you have in services. =for Syntax: SPECS It is also possible to see the privileges of other online users or of oper classes. =for Syntax: SPECS USER X =for Syntax: SPECS OPERCLASS X =head2 Examples /msg &nick& SPECS USER w00t =head1 UPDATE F flushes the database to disk. =for Syntax: UPDATE =head2 Examples /msg &nick& UPDATE =head1 UPTIME F shows services uptime and the number of registered nicks and channels. =for Syntax: UPTIME