IRC services
IRC services are used to protect nicknames and channels from being hijacked or improperly used. This is a brief introduction to the most commonly needed and used services.
Contents
NickServ
NickServ handles account registrations and identification. "/ns" is an alias for "/msg nickserv". For a list of all NickServ commands, type:
/ns help
or
/ns help [command]
Will give you help on [command].
Register and Identify
You will need to register your nickname in order to be added to room access lists, create channels and use other services on the server. Please use a valid e-mail address for password retrieval purposes.
/ns register [password] [e-mail]
In order to identify yourself to the server:
/ns identify [password]
If you commonly use more than one nickname, you can switch to that nick and keep yourself authorized under your primary account. Change to your other nickname, and do as follows:
/ns group [masternick] [password]
Auto-joining Channels
To use these commands, you will need to identify with NickServ first, and the channel itself must be registered with ChanServ. You can not set autojoin on unregistered channels. You will need to configure your IRC client to join unregistered channels automatically.
For a list of all commands:
/ns ajoin help
Turn the auto-invite option on:
/ns ajoin on
Turn the auto-invite option off:
/ns ajoin off
If you find the notice messages sent by the service annoying, turn them off:
/ns set ajoin silent
Add a channel to the list of auto-joined channels:
/ns ajoin add [#channel] [key]
Remove a channel from the list of auto-joined channels:
/ns ajoin del [#channel]
ChanServ
ChanServ handles channel options and user access to channels through NickServ. "/cs" is an alias for "/msg chanserv". For a list of all ChanServ commands, type:
/cs help
or
/cs help [command]
Registering a Channel
To register your own channel(s):
/cs register [#channel] [password] [channel description]
Automatic Ops/Voice Lists
Automatic access settings may only be used by users who have identified with NickServ. Your channel must be registered as well, and you will need a bot in the channel to modify people's access (see BotServ below). These commands are typed in the channel itself. This functionality is known as xOP. It works well, but does not have as fine-grained access control as using access levels.
To add... | Command | Access details |
---|---|---|
Super-ops | !sop add [nickname] | Super-ops have the ability to change permanent channel settings (see channel modes). They can also add/remove users with any of these "auto-type" commands. Can kick/ban users. |
Normal-ops | !aop add [nickname] | They can add/remove users with any of these "auto-type" commands. Can kick/ban users. |
Half-ops | !hop add [nickname] | Can kick/ban users. |
Auto-voice | !vop add [nickname] | if the room is +m (moderated), then the user will be able to talk. |
Note: ![autotype] is either !sop, !aop, !hop, or !vop. [nickname] is the name of the person, [entry-num] is the # found in !vop list.
To view a particular !sop, !aop, !hop, or !vop list:
![autotype] list
To remove a person from a particular list:
![autotype] del [nickname|entry-num]
Banning and kicking users is covered in the user modes section.
BotServ
In order to have access lists enforced within the channel, you'll want to add ChanBot to your channel. This will handle enforcement of all automatic opping, voicing, or bans. "/bs" is an alias for "/msg botserv". For a list of all BotServ commands:
/bs help
or
/bs help [command]
To assign ChanBot to your channel:
/bs assign [#channel] [nick]
Where [nick] is the name of the bot you want in your channel, (/bs botlist for a list of existing bots). You may ask an IRC administrator for a custom bot name. If you don't have a preference ChanBot is recommended.
To unassign a bot from the channel: (Settings will remain, in case you wish to reactivate the bot at a later date).
/cs unassign [#channel]
Channel Settings
By default, channel modes and settings will not save across server restarts. This method requires you have a Bot setup through BotServ (see above). You will also need SuperOp (SOP) access to modify these settings.
See also:
- http://www.unrealircd.com/files/docs/unreal32docs.html#userchannelmodes - UnrealIRCd user and channel modes.
- http://www.anope.org/docgen/1.8/en_us/ - Anope IRC services.
Channel Modes
Ops can set channel modes with the /mode command, however if services get restarted (ie server goes down, services crash, etc) modes will not lock. This could cause problems if a channel key was changed, but not locked.
Usage:
!set mlock +/-[modes]
Example:
!set mlock +nstC
Will set the channel with the options:
Mode | Description |
---|---|
n | No messages from outside channels |
s | Makes channel secret |
t | Only chanops can set topic |
C | No CTCP's allowed in the channel |
Say we wanted to remove +s and +C which were already set, and add +G:
!set mlock +G-sC
For public channels, it is recommended you do not set +s or +p (secret and private respectfully) if you want people to be able to find your room. For war room channels, +s is recommended, as your channel will not be listed in the server channel list. For further security on war rooms, it is suggested you set +k (for a key).
!set mlock +knts newchannelkey
and
!set mlock +nts-k
to remove a key.
Channel Access Levels
xOP makes it easier to change people's privileges by using !aop add <someone> or !aop del <someone>, however many people have migrated from gamesurge, and they are probably more familiar (and/or comfortable) with access level restrictions. Using access levels will also allow channel owners to give other people the ability to change the channel key lock (with some tweaking).
Turn off xOP (you can only do this as channel owner/founder!) !aop / !sop will no longer work!:
!set xop off
To see what access levels are allowed to do what:
!levels list
The syntax for !levels is:
!levels {set |dis[able] | list | reset} [item [level]]
To allow another person other than the founder the ability to change the room's mode (ie !set mlock +k newkey):
!levels set set 10
Warning: !set can be a powerful command! Do not allow untrusted people to use it!
To modify user's level:
!access {add | del | list | clear} [nick [level] | mask | list]
Default levels:
Level | Privileges |
---|---|
Founder | Full access to ChanServ functions; automatic opping upon entering channel. Note that only one person may have founder status (it cannot be given using the ACCESS command). |
9999 | Highest level possible. |
10 | Access to AKICK command; automatic opping. |
5 | Automatic opping. |
3 | Automatic voicing. |
0 | No special privileges; can be opped by other ops (unless secure-ops is set). |
< 0 | May not be opped. |
Example:
!access add earl 3
Will auto-voice the user earl when he joins the channel. (must be a registered user though!)
These levels may be changed, or new ones added, using the LEVELS command; type /msg ChanServ HELP LEVELS for information.
Room Topics
When nobody is in a room, by default, the server will erase the current room topic. To change this behaviour:
!set keeptopic on
User Modes
You'll likely control channel access with automatic ops/voice lists most of the time, but in the case of needing to remove a user from the room, there are a few special commands for dealing with problematic users. (You will need a channel bot in your channel for these commands to work)
Command | Description |
---|---|
!ban [user] [reason (optional)] |
Will ban a user from the room for an indefinite period of time. Note that a ban without a kick will prevent a user from re-joining or talking in a channel. If a reason is provided, it will be appended to the ban line, telling the user (in their status window) why they were banned. |
!kick [user] [reason (optional)] |
Will kick a user from the room for an indefinite period of time. Without a ban, a user can rejoin a room almost immediately after being kicked. If a reason is provided, it will be appended to the kick line, telling the user (in their status window) why they were kicked. |
!kickban [user] [reason (optional)] |
Will kick and ban a user from the room for an indefinite period of time. If a reason is provided, it will be appended to the kick/ban line, telling the user (in their status window) why they were kicked/banned. |
!tkb [nick or [nick!]ident@host] [time] [reason (optional)] |
Will kick and ban a user from the room for a defined period of time.The time argument can be Xd, Xh, Xm Xs; where X is a number, and d= days, h= hours, m= minutes, and s= seconds. Example: !tkb someuser 5h15m no pr0n links allowedWould ban a user for 5 hours and 15 minutes with the reason "no pr0n links allowed" The channel bot automatically removes the ban when time has expired. |
!unban [hostmask] |
Removes any bans on whatever hostmask information was provided. Hostmask is in the format *!*@hostnameorip, aka: nick!username@hostnameorip.com |