Skip to main content
DigitalIRC

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, warning kills will be performed before setting a k-line.

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 [!P|!T ]

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. is the number of clones allowed; it must be at least 4. Warnings are sent if this number is met, and a network ban may be set if the number is exceeded. The reason is shown in LISTEXEMPT. The clone exemption list is stored in etc/services.db.

Syntax: CLONES DELEXEMPT

Removes an IP address from the clone exemption list.

Syntax: CLONES SETEXEMPT [DEFAULT | ] <ALLOWED | WARN>

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 <REASON | DURATION>

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 [days] Syntax: GREPLOG * [days]

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> [parameters]

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 [reason]

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 [params]

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 //[i][p]

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 //[i][p] [FORCE]

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 //[i][p]

Adds a regular expression to the RWATCH list. The reason is shown in snoop notices and kline reasons.

Syntax: RWATCH DEL //[i][p]

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 //[i][p]

Changes the action for a regular expression. Possible values for are:

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 [!P|!T ]

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 [password] Syntax: SOPER DEL Syntax: SOPER SETPASS [password]

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 Syntax: SPECS OPERCLASS

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 [!P|!T ]

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