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 :)