Skip to content

Permissions Model

ElixIRCd has three levels of permission, from least to most privileged:

Regular User
Channel Operator (+o in channel)
IRC Operator (+o globally)

Regular connected users can:

  • Join channels (subject to channel mode restrictions)
  • Send messages to channels and other users
  • Set some user modes on themselves (+B, +g, +i, +R, +w, +x)
  • Set or remove away messages
  • Use standard IRC commands (NICK, JOIN, PART, PRIVMSG, NOTICE, etc.)
  • Register nicknames with NickServ
  • Register channels with ChanServ

Regular users cannot:

  • Set modes restricted to operators (+H, +s, +o)
  • Remove server-managed modes (+r, +Z)
  • Join +O (Oper Only) channels
  • Use operator commands (KILL, REHASH, etc.)

Users with +o in a specific channel can, within that channel:

  • Kick other users (/kick)
  • Set/unset channel modes (all modes except +O which requires IRC op)
  • Ban users (+b)
  • Change the channel topic (unless +t is set — but ops can always change it)
  • Grant/revoke voice (+v) and op (+o) to other users

Channel operators cannot:

  • Set +O (requires IRC operator)
  • Access other channels they’re not op in
  • Use server-level commands

IRC operators (set via /oper) have server-wide privileges:

CapabilityDescription
+O channel modeOnly they can set; grants IRC ops-only access to channels
Join +O channelsCan join channels with Oper Only mode
Bypass +jNot subject to channel join throttle
KILLDisconnect users from the network
OPERWALLSend messages to all operators
GLOBOPSSend global operator messages
WALLOPSBroadcast to all +w users
REHASHReload server configuration
RESTARTRestart the server
DIEShut down the server
STATSView detailed server statistics
TRACETrace connection routes
CHGHOSTChange a user’s hostname
Operator modesCan set +H and +s
WHOIS visibilityCan see hidden info in WHOIS

Users identified with NickServ get the +r mode, which grants:

  • Access to +R channels (registered-only join)
  • Ability to speak in +M channels (registered-only speak)
  • Protection from +R user mode (only registered users can PRIVMSG them)
  • ChanServ founder access for their registered channels
ModeSet by userRemoved by userSet by serverNotes
+B
+g
+H✅ (ops only)✅ (ops only)Removed when -o
+i
+o✅ (via OPER)Removing also removes +H, +s
+r✅ (NickServ/SASL)
+R
+s✅ (ops only)✅ (ops only)Removed when -o
+w
+x✅**Unless cloak_allow_disable=false
+Z✅ (TLS connection)

The channel MODE command checks:

  1. Is the user a channel operator (+o in that channel)? → Can set most channel modes
  2. Is the user an IRC operator? → Can set +O channel mode
  3. Otherwise → MODE changes are rejected

Exception: IRC operators can set +O channel mode even without being a channel operator.