AKILL #
AKILL allows you to maintain network-wide bans. Services will keep your AKILLs stored and allow for easy management.
Syntax: AKILL ADD <nick|hostmask> [!P|!T
If the !P token is specified the AKILL will never expire (permanent). If the !T token is specified expire time must follow, in minutes, hours (“h”), days (“d”) or weeks (“w”).
Examples:
/msg OperServ AKILL ADD foo !T 5 bar reason
/msg OperServ AKILL ADD foo !T 3d bar reason
/msg OperServ AKILL ADD [email protected] !P foo reason
/msg OperServ AKILL ADD [email protected] foo reason
The first example looks for the user with a nickname of “foo” and adds a 5 minute AKILL for “bar reason.”
The second example is similar but adds the AKILL for 3 days instead of 5 minutes.
The third example adds a permanent AKILL on [email protected] for “foo reason.”
The fourth example adds a AKILL on [email protected] for the duration specified in the configuration file for “foo reason.”
Syntax: AKILL DEL <hostmask|number>
If number is specified it correlates with the number on AKILL LIST. You may specify multiple numbers by separating with commas. You may specify a range by using a colon.
Examples:
/msg OperServ AKILL DEL [email protected]
/msg OperServ AKILL DEL 5
/msg OperServ AKILL DEL 1,2,5,10
/msg OperServ AKILL DEL 1:5,7,9:11
Syntax: AKILL LIST [FULL]
If FULL is specified the AKILL reasons will be shown.
Examples:
/msg OperServ AKILL LIST
/msg OperServ AKILL LIST FULL
Syntax: AKILL LIST
Shows any AKILLs matching the given hostmask, with reasons. This command will not perform DNS lookups on a host, for best results repeat it with host and IP address.
Examples:
/msg OperServ AKILL LIST [email protected]
Syntax: AKILL LIST
Shows the given AKILL, with reason.
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.
CLEARCHAN #
CLEARCHAN 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 AKILL, which sets a one week network ban against the hosts of all users in the channel.
This command should not be used lightly.
Syntax: CLEARCHAN KICK|KILL|AKILL <#channel>
Example:
/msg OperServ CLEARCHAN KICK #warez warez is bad, mk?
/msg OperServ CLEARCHAN AKILL #warez you were warned!
CLONES #
CLONES keeps track of the number of clients per IP address. Warnings are displayed in the snoop channel about IP addresses with multiple clients.
CLONES only works on clients whose IP address Atheme knows. If the ircd does not support propagating IP addresses at all, CLONES is not useful; if IP addresses are not sent for spoofed clients, those clients are exempt from CLONES checking.
Syntax: CLONES KLINE ON|OFF|
Enables/disables banning IP addresses with more than the allowed number clients from the network for one hour (these bans are not added to the AKILL list). This setting is saved in etc/services.db and defaults to off.
If a count is specified,
Syntax: CLONES LIST
Shows all IP addresses with more than 3 clients with the number of clients and whether the IP address is exempt.
Syntax: CLONES ADDEXEMPT
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.
Syntax: CLONES DELEXEMPT
Removes an IP address from the clone exemption list.
Syntax: CLONES SETEXEMPT [DEFAULT |
Sets either the default or a given exemptions ALLOWED or WARN limit to the specified number of clones. WARN or ALLOWED can be 0, disabling any warning messages or kills.
Syntax: CLONES SETEXEMPT
Sets the reason or duration of a given exemption to the specified value. The DURATION value can be 0, making the exemption permanent.
Syntax: CLONES LISTEXEMPT
Shows the clone exemption list with reasons.
Example:
/msg OperServ CLONES ADDEXEMPT 127.0.0.1 100 local
/msg OperServ CLONES DELEXEMPT 192.168.1.2
Syntax: CLONES DURATION
Allows modifying the duration that hosts who clone are banned for. Defaults to one hour. Is saved between restarts.
Example:
/msg OperServ CLONES DURATION 30m
COMPARE #
COMPARE 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.
Syntax: COMPARE <#channel|user> <#channel|user>
Example:
/msg OperServ COMPARE #warez #dcc
/msg OperServ COMPARE w00t Brik
GREPLOG #
GREPLOG searches through services logs and displays matching lines.
The first parameter is either a service name (to search all commands given to that service) or an asterisk (to search all changes to services data).
The second parameter is the pattern to search for. It may contain * and ? wildcards and should usually start and end in *.
The optional third parameter is the number of previous days to search in addition to today.
Note that this command will only work if sufficient information is written to log files.
Syntax: GREPLOG
Examples:
/msg OperServ GREPLOG ChanServ #somechan 7
/msg OperServ GREPLOG * #somechan 60
IDENTIFY #
IDENTIFY authenticates for services operator privileges, if the operator or operator class has been defined as needing an additional password.
You need to login to your services account first.
Syntax: IDENTIFY
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.
Examples:
/msg OperServ IGNORE ADD pfish!@ flooding services
/msg OperServ IGNORE DEL pfish!@
/msg OperServ IGNORE LIST
/msg OperServ IGNORE CLEAR
INFO #
INFO shows some services configuration information that is not available to see elsewhere.
Syntax: INFO
INJECT #
INJECT fakes data from the uplink. This command is for debugging only and should not be used unless you know what you’re doing.
Syntax: INJECT
Examples:
/msg OperServ INJECT :uplink.network.com PING :shrike.network.com
/msg OperServ INJECT :foo PRIVMSG OperServ :HELP INJECT
JUPE #
JUPE 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.
Syntax: JUPE
Example:
/msg OperServ JUPE irc.blah.net very unstable server
MODE #
MODE allows for the editing of modes on a channel. Some networks will most likely find this command to be unethical.
Syntax: MODE <#channel>
Examples:
/msg OperServ MODE #heh -m
/msg OperServ MODE #heh +o foo
MODINSPECT #
MODINSPECT displays detailed information about a module.
The names can be gathered from the MODLIST command. They are not necessarily equal to the pathnames to load them with MODLOAD.
Syntax: MODINSPECT
Example:
/msg OperServ MODINSPECT protocol/charybdis
MODLIST #
MODLIST displays a listing of all loaded modules and their addresses.
Syntax: MODLIST
MODLOAD #
MODLOAD loads one or more modules.
If the path does not start with a slash, it is taken relative to PREFIX/modules or PREFIX/lib/atheme/modules (depending on how Atheme was compiled). Specifying a suffix like .so is optional.
If any of the modules need a rehash after being loaded, this is done automatically.
Syntax: MODLOAD <path...>
Example:
/msg OperServ MODLOAD ../contrib/fc_dice Help for ^BMODRELOAD^B:
MODRELOAD reloads a currently loaded module. If the command fails, the module in question will be unloaded until errors are corrected.
Syntax: MODRELOAD <name...>
Example:
/msg OperServ MODRELOAD chanserv/register
MODUNLOAD #
MODUNLOAD unloads one or more modules. Not all modules can be unloaded.
The names can be gathered from the MODLIST command. They are not necessarily equal to the pathnames to load them with MODLOAD.
Syntax: MODUNLOAD <name...>
Example:
/msg OperServ MODUNLOAD chanserv/register
NOOP #
NOOP allows you to deny IRCop access on a per-hostmask or per-server basis. If a matching user opers up, they will be killed.
Syntax: NOOP ADD HOSTMASK nick!user@host [reason]
Syntax: NOOP ADD SERVER
Examples:
/msg OperServ NOOP ADD HOSTMASK !@some.spoof Abusive operator
/msg OperServ NOOP ADD SERVER bad.server Abusive admin
Syntax: NOOP DEL HOSTMASK nick!user@host
Syntax: NOOP DEL SERVER
Examples:
/msg OperServ NOOP DEL HOSTMASK *[email protected]
/msg OperServ NOOP DEL SERVER bad.server
Syntax: NOOP LIST HOSTMASK Syntax: NOOP LIST SERVER
OVERRIDE #
OVERRIDE is used for running a command as another user.
Syntax: OVERRIDE
Examples:
/msg OperServ OVERRIDE dotslasher ChanServ FLAGS #cows nenolod +*
PERL #
Inspect the Perl interpreter, including debug information on loaded scripts and more.
To load scripts into Atheme, use the MODLOAD/MODUNLOAD/MODRELOAD commands, providing the script’s filename instead of a compiled module.
Examples:
/msg OperServ PERL
RAKILL #
RAKILL allows for regex-based akills, which are useful for removing clones or botnets. The akills are not added to OperServ’s list and last a week.
Be careful, as regex is very easy to make mistakes with. Use RMATCH first. The regex syntax is exactly the same.
Syntax: RAKILL /
Example:
/msg OperServ RAKILL /^m[oo|00]cow/i No moocows allowed.
RAW #
RAW injects data into the uplink. This command is for debugging only and should not be used unless you know what you’re doing.
Syntax: RAW
Example:
/msg OperServ RAW :OperServ OPERWALL :My admin is a loser
READONLY #
READONLY allows services operators to enable or disable readonly mode while services is running.
Syntax: READONLY ON|OFF
Examples:
/msg OperServ READONLY ON
REHASH #
REHASH updates the database and reloads the configuration file. You can perform a rehash from system console with a kill -HUP command.
Syntax: REHASH
Example:
/msg OperServ REHASH
RESTART #
RESTART shuts down services and restarts them.
Syntax: RESTART
Example:
/msg OperServ RESTART
RMATCH #
RMATCH shows all users whose nick!user@host gecos matches the given 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.
By default, the pattern is a POSIX extended regular expression. If PCRE support has been compiled in, you can put a p after the pattern to use it.
By default, there is a limit on the number of matches. To override this limit, add the FORCE keyword. In any case the actual number of matches will be shown.
Syntax: RMATCH /
Example:
/msg OperServ RMATCH /^m(oo|00)cow/i FORCE
/msg OperServ RMATCH #^[a-z]+!~?[a-z]+@#
/msg OperServ RMATCH /^[^ ]* [^ ]*$/
/msg OperServ RMATCH /ddd/p
RNC #
RNC shows the most common realnames on the network.
Syntax: RNC [number]
Example:
/msg OperServ RNC 10
RWATCH #
RWATCH maintains a list of regular expressions, which the nick!user@host gecos 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 AKILL list. The RWATCH list is stored in etc/rwatch.db and saved whenever it is modified.
See RMATCH for more information about regular expression syntax.
Syntax: RWATCH ADD /
Adds a regular expression to the RWATCH list. The reason is shown in snoop notices and kline reasons.
Syntax: RWATCH DEL /
Removes a regular expression from the RWATCH list.
Syntax: RWATCH LIST
Shows the RWATCH list. The meaning of the letters is:
i - case insensitive match
p - PCRE pattern
S - matching clients are shown in the snoop channel
K - matching clients are banned from the network
Syntax: RWATCH SET /
Changes the action for a regular expression. Possible values for
SNOOP - enables display in the snoop channel
NOSNOOP - disables display in the snoop channel
KLINE - enables network bans
NOKLINE - disables network bans
Example:
/msg OperServ RWATCH ADD /^m(oo|00)cow/i moocow figure
/msg OperServ RWATCH DEL /^m(oo|00)cow/i
SET AKICKTIME #
SET AKICKTIME allows network staff to the default duration of akicks. Setting this to 0 makes all akicks permanent unless a duration is specified in the AKICK command.
Syntax: SET AKICKTIME
Example:
/msg OperServ SET AKICKTIME 20
SET CHANEXPIRE #
SET CHANEXPIRE allows network staff to modify how often channel expirations will be checked.
Syntax: SET CHANEXPIRE
Example:
/msg OperServ SET CHANEXPIRE 30
SET COMMITINTERVAL #
SET COMMITINTERVAL allows network staff to set how often (in minutes) the services database will be written to disk.
Syntax: SET COMMITINTERVAL
Example:
/msg OperServ SET COMMITINTERVAL 5
SET ENFORCEPREFIX #
SET ENFORCEPREFIX changes the prefix of the nick that a user will be changed to when they use an enforced nickname and fail to authenticate to it.
Syntax: SET ENFORCEPREFIX
Example:
/msg OperServ SET ENFORCEPREFIX Guest
SET KLINETIME #
SET KLINETIME allows network staff to set a default time before AKILLs with no provided duration will expire.
Syntax: SET KLINETIME
Example:
/msg OperServ SET KLINETIME 5
SET MAXCHANACS #
SET MAXCHANACS allows setting the maximum number of entries allowed in a channel’s access list.
Syntax: SET MAXCHANACS
Example:
/msg OperServ SET MAXCHANACS 30
SET MAXCHANS #
SET MAXCHANS allows setting how many channels one account may be founder of.
Syntax: SET MAXCHANS
Example:
/msg OperServ SET MAXCHANS 7
SET MAXFOUNDERS #
SET MAXFOUNDERS allows setting the maximum number of founders that one channel may have.
Syntax: SET MAXFOUNDERS
Example:
/msg OperServ SET MAXFOUNDERS 4
SET MAXLOGINS #
SET MAXLOGINS allows setting how many users may be logged into one account at the same time.
Syntax: SET MAXLOGINS
Example:
/msg OperServ SET MAXLOGINS 7
SET MAXNICKS #
SET MAXNICKS allows setting how many nicknames one account is allowed to own.
Syntax: SET MAXNICKS
Example:
/msg OperServ SET MAXNICKS 7
SET MAXUSERS #
SET MAXUSERS allows setting how many accounts one email address may have registered. This can be overridden on a per-email basis with the emailexempts configuration block.
Syntax: SET MAXUSERS
Example:
/msg OperServ SET MAXUSERS 7
SET MDLIMIT #
SET MDLIMIT sets how many pieces of metadata can belong to one object (an account, group or channel).
Syntax: SET MDLIMIT
Example:
/msg OperServ SET MDLIMIT 30
SET NICKEXPIRE #
SET NICKEXPIRE allows network staff to modify how often nickname and account expirations will be checked.
Syntax: SET NICKEXPIRE
Example:
/msg OperServ SET NICKEXPIRE 30
SET RECONTIME #
SET RECONTIME allows modifying how long before services will try to reconnect to the uplink.
Syntax: SET RECONTIME
Example:
/msg OperServ SET RECONTIME 5
SET SPAM #
SET SPAM allows network staff to define whether or not new users get messaged about services when they connect.
Syntax: SET SPAM TRUE|FALSE
Example:
/msg OperServ SET SPAM TRUE
SGLINE #
SGLINE allows you to maintain network-wide bans by real name (gecos). It works similarly to AKILL.
Syntax: SGLINE ADD
If the !P token is specified the SGLINE will never expire (permanent). If the !T token is specified expire time must follow, in minutes, hours (“h”), days (“d”) or weeks (“w”).
Examples:
/msg OperServ SGLINE ADD foo !T 5 bar reason
/msg OperServ SGLINE ADD foo !T 3d bar reason
/msg OperServ SGLINE ADD foo !P foo reason
/msg OperServ SGLINE ADD foo foo reason
The first example looks for the user with a gecos of “foo” and adds a 5 minute SGLINE for “bar reason.”
The second example is similar but adds the SGLINE for 3 days instead of 5 minutes.
The third example adds a permanent SGLINE on foo for “foo reason.”
The fourth example adds a SGLINE on foo for the duration specified in the configuration file for “foo reason.”
Syntax: SGLINE DEL <gecos|number>
If number is specified it correlates with the number on SGLINE LIST. You may specify multiple numbers by separating with commas. You may specify a range by using a colon.
Examples:
/msg OperServ SGLINE DEL foo
/msg OperServ SGLINE DEL 5
/msg OperServ SGLINE DEL 1,2,5,10
/msg OperServ SGLINE DEL 1:5,7,9:11
Syntax: SGLINE LIST [FULL]
If FULL is specified the SGLINE reasons will be shown.
Examples:
/msg OperServ SGLINE LIST
/msg OperServ SGLINE LIST FULL
Syntax: SGLINE SYNC
Sends all sglines to all servers. This can be useful in case services will be down or do not see a user as matching a certain sgline.
SHUTDOWN #
SHUTDOWN shuts down services. Services will not reconnect or restart.
Syntax: SHUTDOWN
Example:
/msg OperServ SHUTDOWN
SOPER #
SOPER allows manipulation of services operator privileges.
SOPER LIST shows all accounts with services operator privileges, both from the configuration file and this command. It is similar to /stats o OperServ.
SOPER LISTCLASS shows all defined oper classes. Use the SPECS command to view the privileges associated with an oper class.
SOPER ADD grants services operator privileges to an account. The granted privileges are described by an oper class. You can also optionally specify a password for the new services operator.
SOPER DEL removes services operator privileges from an account.
SOPER SETPASS sets or clears a password for services operator privileges on an account. The password must be already encrypted. The target user needs to enter the password using IDENTIFY.
It is not possible to modify accounts with operator{} blocks in the configuration file.
Syntax: SOPER LIST|LISTCLASS
Syntax: SOPER ADD
Examples:
/msg OperServ SOPER LIST
/msg OperServ SOPER ADD anoper sra
/msg OperServ SOPER ADD newoper sra $1$bllsww$xBjenkPsZgkqy1Rx5gl2h1
/msg OperServ SOPER DEL abusiveoper
/msg OperServ SOPER SETPASS anoper $1$vHFzU0jC$ePfKvERVwaDRdnHOnZZ6h.
SPECS #
SPECS shows the privileges you have in services.
Syntax: SPECS
It is also possible to see the privileges of other online users or of oper classes.
Syntax: SPECS USER
Example:
/msg OperServ SPECS USER w00t
SQLINE #
SQLINE allows you to deny the use of certain nicknames or channels network-wide.
A nickname sqline may contain *, ?, # (any digit) and @ (any letter) wildcards. A channel sqline must be an exact match, starting with # or &.
Syntax: SQLINE ADD
If the !P token is specified the SQLINE will never expire (permanent). If the !T token is specified expire time must follow, in minutes, hours (“h”), days (“d”) or weeks (“w”).
Examples:
/msg OperServ SQLINE ADD spambot* !T 7d bar reason
/msg OperServ SQLINE ADD spam??? !P foo reason
The first example denies the use of nicknames starting with “spambot” for 7 days.
The second example adds a permanent SQLINE on “spam???” for “foo reason.”
Syntax: SQLINE DEL <mask|number>
If number is specified it correlates with the number on SQLINE LIST. You may specify multiple numbers by separating with commas. You may specify a range by using a colon.
Examples:
/msg OperServ SQLINE DEL foo
/msg OperServ SQLINE DEL 5
/msg OperServ SQLINE DEL 1,2,5,10
/msg OperServ SQLINE DEL 1:5,7,9:11
Syntax: SQLINE LIST [FULL]
If FULL is specified the SQLINE reasons will be shown.
Examples:
/msg OperServ SQLINE LIST
/msg OperServ SQLINE LIST FULL
Syntax: SQLINE SYNC
Sends all sqlines to all servers. This is useful because sqlines must be present before the nickname or channel is tried to be fully effective.
UPDATE #
UPDATE flushes the database to disk.
Syntax: UPDATE
Example:
/msg OperServ UPDATE
UPTIME #
UPTIME shows services uptime and the number of registered nicks and channels.
Syntax: UPTIME