Operator Documentation and Conduct
General Guidelines
IRC Operators have the power to shape the IRC network - but an IRC operator must know the limits. An IRC operator's role is to maintain the network, this includes making sure the three servers on KentIRC are linked, making sure services are up and working (when we introduce them), and such things. An operators role is also to support users. This means you try and help users with any questions they may have. If in any doubt, consult fellow IRC operators, and the Senior Officer.
Crucially, IRC Operators should try to not get involved with Channel Operators and Channels unless they are of course a Channel Operator by right. You should never use Operator rights to administer a channel (for example, a channel like #cs) unless a Channel Operator asks you to help, or if the problem is incredibly severe (such as a network-wide spammer, or a malicious user who has taken over a channel).
Try to put yourself in the shoes of a Channel Operator, they don't like Server Operators getting involved without asking. So, if you feel there is a border-line case, get in contact with a Channel Operator first.
Operator HOWTO
Authenticating
The first thing to do when you connect to IRC is "oper-up", or become an IRC operator. In nearly all IRC clients this is as easy as typing "/oper" and then typing your password. If your current nickname is not the same as your Operator name, then simply do /oper <name> <password> or /oper <name>. Remember, all failed attempts will be logged and seen by other operators.
For example:
/oper username password
Deoper
To deoper, type "/mode <your-nickname> -o"
Like so:
/mode evad -o
This will return you to a normal user (with modes w and s kept, which are standard user modes anyway)
User Modes
Once authenticated you don't necessarily get given all the usermodes you may want. Below is a list of all the operator modes:
Usermodes: (* designates that the umode is oper only) USERMODE DESCRIPTION ----------------------------------------------------------------- +i - Is 'invisible'. +w - Can see wallops messages. +r - Is registered/identified to services. +s - Can see oper kill messages. +R - Will not receive messages from -r clients. *+a - Designates the user as being a Services Administrator. *+b - Can see chatops messages. *+c - Can see client connections and exits. *+d - Can see debug messages. *+e - Can see dccallow failure notices. *+f - Can see flood messages. *+g - Can recieve globops messages. *+h - Is available for help, being listed in /stats P *+j - Can see rejected connection notices *+k - Can see server kill messages. *+m - Can see spambot notices. *+n - Can see routing notices. *+o - Is a global IRC Operator. *+y - Can see certain information requests. (e.g. /stats) *+A - Is a Server Administrator. *+F - Can bypass the ircd's recvq throttling *+K - Can see U:lined kill messages *+O - Is a local IRC Operator.
You'll most likely want +a and +A. These give you Services Admin and Server Admin modes.
To change your mode, use the /mode command, like so:
/mode evad +a
You can only change your own mode, nobody elses.
Services Administrator
As a Services Administrator you have the power to change channel modes without being an operator in that channel. You can do this with the /samode command. Most clients don't recognise this, so in irssi you have to use /quote samode. Basically it's the same syntax as /mode in a normal channel. For example:
/quote samode #channel +o evad
And it's as simple as that.
Operator Commands
Warning
IRC Operators have a range of commands at their disposal. These commands shouldn't just be used randomly, mind
Many commands should NEVER be used if you don't know what you are doing. So please don't
Admin Commands
Please only execute the following commands if you know what you doing. In the most part only Tim, evad and ben will ever need to use these commands. They are mostly to do with server links and such things. If you need to, you can re-attach and detach servers. USE WITH CARE
COMMAND - USAGE and DESCRIPTION
-------------------------------------------------------------------
SQUIT - SQUIT <server> [reason]
Splits <server> away from your side of the net with
[reason].
CONNECT - CONNECT <server_A> [port [server_B]]
When [server_B] is used, CONNECT asks [server_B] to
connect to <server_A>. Global Opers only.
When [server_B] is not used, CONNECT trys to connect
your server to <server_A>. Local and Global Opers.
When [port] is used, the connection will be attempted
to [port]. When [port] is not used, a default will be
chosen from the conf.
REHASH - REHASH [option]
When no [option] is given, ircd will re-read the
ircd.conf file.
[option] can be one of the following:
DNS - Re-read the /etc/resolv.conf file
TKLINES - Clears temporary klines
GC - Performs garbage collecting of excess
memory.
MOTD - Re-reads MOTD files
THROTTLES - Clears connection throttles
AKILLS - Clears akills
SQLINES - Clears sqlines
SGLINES - Clears sglines
TSQGLINES - Clears temporary nick/channel/gcos blocks
RESTART - RESTART
Restarts the IRC server.
DIE - DIE
Terminates the IRC server.
General Operator Commands
These commands can be used on a more regular basis. Please use these commands with care, since they still affect users and the network.
KILL - KILL <nick> <reason>
Disconnects user <nick> from the IRC server he/she
is connected to with reason <reason>.
Local Opers can only kill clients on their servers.
Global Opers can kill clients on any server on the
IRC network.
+ KLINE - KLINE [minutes] <nick|user@host> :[reason]
Adds a KLINE to the ircd.conf or klines.conf file which
will ban the specified user from using that server.
The banned client will receive a message saying he/she
is banned with reason [reason]
For a temporary KLINE, length of kline is given in
minutes as the first parameter i.e.
KLINE 10 <nick|user@host> :cool off for 10 minutes
+ UNKLINE - UNKLINE <user@host>
-- If compiled with UNKLINE --
Will attempt to unkline the given <user@host>
+ SET - SET <option> <value>
<option> can be one of the following:
MAX - Sets the number of max connections
to <value>.
-- The following three are if compiled with FLUD --
FLUDNUM - Sets the number of flud messages to
trip flud alarm to <value>
FLUDTIME - Sets the number of seconds in which
FLUDNUM msgs must occur to <value>
FLUDBLOCK - Sets the number of seconds to block
fluds to <value>
-- The following are if compiled with THROTTLE_ENABLE --
THROTTLE ENABLE - Enables/disables connection
throttling
THROTTLE COUNT - Sets connection count to <value>
THROTTLE TIME - Sets time window to <value> seconds
THROTTLE RECORDTIME - Sets host record time to <value>
seconds
THROTTLE HASH - Resizes throttle hashtable to
<value> buckets
LCLONES <ip> - Displays or sets soft local clone
limit for <ip> (1.2.3.4/1.2.3.*)
to <value> (0 to reset to default)
GCLONES <ip> - Displays or sets soft global clone
limit for <ip> to <value>
DEFLCLONES - Same as local_clones in conf
DEFGCLONES - Same as global_clones in conf
Staff Commands
These commands won't make any changes to the network, feel free to use them.
+ DNS - DNS
Shows some stats about ircd's asynchronous resolving
code
TRACE - TRACE [server|nick]
TRACE shows client info about [server|nick] or about
the server you are on if no [server|nick] is given.
All users that use TRACE can see the path to
[server|nick] if given and all servers and opers
connected, as well as the connection class they
fall into.
Opers can see unregistered connections on a server
with TRACE as well as connection class counts.
+ LOCOPS - LOCOPS :<message>
Sends an LOCOPS message of <message> to all
opers on local server who are umode +g
+ GLOBOPS - GLOBOPS :<message>
Sends an GLOBOPS message of <message> to all
opers on the network who are umode +g
+ CHATOPS - CHATOPS :<message>
Sends an CHATOPS message of <message> to all
opers on the network who are umode +b
STATS - STATS <letter> [server|nick]
Queries server [server] (or your own server if no
server parameter is given) for info corresponing to
<letter>.
LETTER (* = Oper only.)
------ (^ = Can be configured to be oper only.)
* a - Shows akills
* c - Shows connect blocks
* D - Shows special clone limits
* d - Shows clone limit statistics
* G - Shows local gcos restrictions
* g - Shows network gcos restrictions (sglines)
i - Shows allow blocks
* K - Shows permanent K lines
* k - Shows temporary K lines
l - Shows hostname and generic info about [nick]
* m - Shows commands and their usage
^ o - Shows oper bocks
p - Shows opers connected and their idle times
* Q - Shows local nick/chan restrictions
* q - Shows network nick/chan restrictions (sqlines)
r - Shows resource usage by ircd (only in DEBUGMODE)
* s - Shows server name cache
* T - Shows throttle stats
* t - Shows generic server stats
* U - Shows super (U-Lined) servers.
u - Shows server uptime
v - Shows connected servers and their idle times
* w - Shows fd list (only in DEBUGMODE)
y - Shows class blocks
* z - Shows memory stats
? - Shows network traffic statistics bdefgjnx
Rules and Guidelines
Historically there are two approches to how IRC Operators have worked. One is that IRC Network Operators are automatically by right Channel Operators in every channel. This is dying out now in favour of keeping Network and Channel Operators seperate entities. It is important that Network Operators understand that they only need to use their powers whenever their duties need to be carried out.
Holding Channel Operator status doesnt mean anything, Network Operators can affect the network and channel in the same way without the little '@'.
Examples of Being a Good Operator
* Oping the rightful Operators of the channel if they lose it somehow. * Dealing with blatent spamming in channels, firstly advising the person to stop. ...
Examples of Being a Bad Operator
* Deciding who can be the Operator of a channel that doesnt have one. ...
Hints and Tips
Feel free to add to this section, it contains things that most docs don't
Thanks to Trapper
/mode <name> +aA (Sets yourself extra modes)
- If in a channel where Hal is, deop Hal *first* and reop him after (unless you are on his op list) if you want to op-up in that channel.
/who +c <secret-channel-name>
/notice $*.uk <notice> (global notices)
