ChanServ Information

Version 1.5.0


Last revised by Fredfred () and h () on 2022-08-16

Originally written by Mystro () on 2001-04-26

Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.

Introduction

ChanServ has been created in order to stop channel takeovers, automate channel management, and to make life easier for users in general. Over the years many different commands have been added to ChanServ. These commands are discussed in this document.

ChanServ may be accessed through either /chanserv or /msg chanserv@services.dal.net. For the purpose of this document, we will use /chanserv as the command, however, some IRC clients (e.g. BitchX) do not support /chanserv and you will have to use /msg chanserv@services.dal.net.

Contents

1 · Registering a channel

Syntax: /chanserv register #channel password description

Information: The REGISTER command allows a user to register his/her channel (if it is not already registered) quickly and painlessly by typing one line. In order to register a channel, the user must specify the channel, the password that he or she, and a short description of his channel.

Note: Under no circumstances should you give out the password to anyone. DALnet will NOT help with takeovers if you have shared your password. Also, try to make your password something that might be simple to you but would be hard for others to guess.

In order to find out if a channel is registered or not, type /chanserv info #channel, more on that later. Also, do not forget to use the # sign when registering a channel.

Example: /chanserv register #mystro m3dj35 My home online.

This would register the channel #mystro with the password m3dj35 (a pretty complex password for someone to just guess out of the blue) and the description "My home online."

2 · Dropping a channel

Syntax: /chanserv drop #channel [dropcode]

Information: This command will allow you to drop a channel you are a founder of. You must first use the command alone and then you will receive a drop code which you type in with the command.

Note: You must identify to the channel before being able to drop it.

Example: /chanserv drop #mystro

This is the initial command, after which I would see something like this in my status window:

-ChanServ- Dropping a channel is permanent and cannot be undone!

-ChanServ- To confirm, type: /chanserv DROP #mystro 13151683216

After that, I would type the command /chanserv DROP #mystro 13151683216 to finalize if I was sure.

3 · Identifying as a channel's founder

Syntax: /chanserv identify #channel password

Information: The identify command identifies the user as the founder of that channel and gives the user access to founder-based commands. You may also use /identify #channel password and /services identify #channel password (This may not work on some clients).

4 · Retrieving a password

Syntax: /chanserv sendpass #channel email

Information: The sendpass command allows the founder to have his channel password sent to the email address associated with the channel in the services database. Using that function, the founder may have his password sent to him incase of a lost/forgotten password. The foundernick for that channel must be identified before that command can be used.

Note: It is suggested that you set your email address to a permanent email address that will not change over time (not an email that came with your ISP, as you may change ISPs in the future). If your email is changed and you have lost your password, you will not be able to retrieve it.

Update: Previously, the current password of the channel was directly sent to your e-mail address. Effective immediately, the SENDPASS command will work as follows:

1. You will receive an E-Mail with an authorization code to confirm your request, which you'll have to act upon. The authorization code will be valid for 72 hours (3 days).

2. Upon completing the authorization as instructed, ChanServ will create a NEW, RANDOM PASSWORD for the channel, and will tell you the new password, as a response to your AUTH command.

5 · Adding/removing/listing Managers

Syntax: /chanserv manager #channel add/del/list/xlist/wipe nick reason

Founders can now add up to 5 managers to their channel. Managers have *almost* full control over the channel with the exception of changing the channel's foundership

Channel managers can:
- Manage the SOP list (add/remove SOPs)             
- Wipe VOP/HOP/AOP/SOP lists
- Change channel description
- Masskick and massdeop a channel up to and including the access level of AOp
- Set/unset OPGUARD
- Set/unset VOICEGUARD
- Set/unset MLOCK
- Set/unset IDENT
- Set/unset KEEPTOPIC
- Set/unset RESTRICT
- Set/unset URL
- Set/unset VERBOSE
- Set/unset TOPICLOCK (unless it's locked to the founder)
- Set/unset LEAVEOPS
- Set/unset PRIVATE
- Set/unset MEMO level (unless it's locked to the founder)
- See successor's nick with ChanServ INFO

Channel managers can *NOT*:
- Change channel password
- Change founder
- Set/unset successor
- Set/unset mailblock
- Add/remove other managers
- Set/unset UNSECURE (currently broken and doesn't do anything)
- Use sendpass

6 · Adding/removing/listing SOps

Syntax: /chanserv sop #channel add/del/list/xlist/wipe [nick] or [mask] [reason]

Information: The command allows the founder to add or remove a SuperOP to the channel access list. The list command, however, can be accessed by AOps' and up.

Note: SOps have access to very important commands (AOp additions and removal, akick addition/removal, etc...) and therefore should be picked very carefully. You may not have more than 100 SOps on ChanServ's access list. Wipe may only be used by founder.

Update: Founders can no longer be added to AOP/SOP/MANAGER/AKICK lists.

7 · Adding/removing/listing AOps

Syntax: /chanserv aop #channel add/del/list/xlist/wipe [nick] or [mask] [reason]

Information: This command lets any SOp/Manager or the Founder add or remove auto ops from the channel. The LIST argument in the command can be accessed by AOps and up.

Note: The AOp list is limited to 300 entries. Wipe may only be used by founder

Update: Founders can no longer be added to AOP/SOP/Manager/AKICK lists.

8 · Adding/removing/listing VOps

Syntax: /chanserv vop #channel add/del/list/xlist/wipe [nick] or [mask] [reason]

Information: This command lets any SOp/Manager or the Founder add or remove VOps from the channel. The LIST argument in the command can be accessed by AOps and up.

Note: The VOP list is limited to 300 entries. Wipe may only be used by manager or founder.

9 · Adding/removing/listing HOps

Syntax: /chanserv hop #channel add/del/list/xlist/wipe [nick] or [mask] [reason]

Information: Half-ops (Hops) will be able to kick users who aren't opped (+o) or voiced (+v), they also can change the channel topic even if (+t) is set. For more information about channel modes, please visit http://docs.dal.net/docs/modes.html.

Note: The HOP list is limited to 300 entries. If a SOP+ adds A half-op to a channel, they give them the permission to invite and unban themselves, and they can view the channel listops.

10 · Adding/removing/listing AKicks

Syntax: /chanserv akick #channel add/del/list/xlist/wipe [nick] or [mask] [reason]

Information: Akicks are Auto Kicks and may be added by a SOp/Manager or Founder; however only a founder may wipe akicks. Akicks can be added by nickname or hostname. Also, you may specify list patterns (*word*). Wipe may only be used by founder.

Update: Founders can no longer be added to AOP/SOP/MANAGER/AKICK lists.

11 · Oping / Deoping people

Syntax: /chanserv op/deop #channel nickname

Information: This command is pretty simple, it allows you to op or deop a nickname in a channel without having to be opped or even be in the channel. You must be an AOp or higher in order to use this command.

Note: You may not deop someone who has higher ChanServ access than you

12 · Voicing / Devoicing people

Syntax: /chanserv voice/devoice #channel nickname

Information: This command will voice a given nick in the channel. It will not work is voiceguard is enabled and the user doesnt have VOP access. You must be an AOp or higher in order to use this command.

13 · Half-oping / Half-deoping people

Syntax: /chanserv halfop/dehalfop #channel nickname

Information: This command will halfop a given nick in the channel. It will not work is opguard is enabled and the user doesnt have HOP access. You must be an AOp or higher in order to use this command.

14 · Mass kicking a channel

Syntax: /chanserv mkick #channel

Information: The MKick (Mass Kick) command is used in case of a desync (more information in the Netsplits document) in which case the channel has to be closed and reopened. This command evacuates a channel completely by kicking everyone out, banning *!*@* (everyone), setting mode +i (invite only) and +l 1. When MKICKing a channel, you cannot UNBAN or INVITE yourself back into the channel. This should only be used in a takeover situation.

Note: Masskicks are limited to one an hour, and are only available to SOPs, Managers and Founders. The command may not be used if someone higher than you is in the channel. SOps can't mkick when the founder is present.

15 · Mass Deoping a channel

Syntax: /chanserv mdeop #channel

Information: The MDEOP command will deop everyone in the channel who have equal or less access in ChanServ than the person using the command. (e.g. AOps can only deop regular ops and other Ops, SOps can only deop other SOps, AOps and the regular ops.)

16 · Setting options in channels

The SET command has many different arguments including FOUNDER, PASSWD, DESC, MLOCK, OPGUARD, VOICEGUARD, KEEPTOPIC, URL, IDENT, RESTRICT and VERBOSE. All these commands will modify and change how ChanServ acts in your channel and you should take some time to get familiar with them as they will help you in keeping your channel secure.

Note: To use the ChanServ SET command and its arguments, make sure you are identified as the channel founder (more below).

16.1 Changing channel founders

Syntax: /chanserv set #channel founder

Information: The FOUNDER argument of the set command will allow the user that uses this command to change the channel founder to himself.

Note: The nickname that the user is using must be registered or the command will not work

16.2 Changing channel passwords

Syntax: /chanserv set #channel passwd oldpassword newpassword

Information: This argument will change the password of the channel from an old password to a new password. It is a good idea to rotate your password once every few months to improve security (more on that in the Security section).

Note: You must identify to the channel before being able to use this command.

Example: /chanserv set #mystro passwd m3dj35 m3dj36

This command will set the channel password from m3dj35 to m3dj36

16.3 Changing channel description

Syntax: /chanserv set #channel desc newdescription

Information: The DESC argument lets a user change the description of his or her channel which can be viewed through the /chanserv info command (more on that later).

Example: /chansev set #mystro desc Mystro's home on the web!

This command will change #mystro's channel description to 'Mystro's home on the web!'

16.4 Changing the channel modes

Syntax: /chanserv set #channel mlock modes

Information: The MLOCK command is one of the most important commands to maintain channel security. Below is a list of all the possible modes and what they do:

+R - Only registered nicks allowed. Very useful if you wish to stop clone attacks, since most clone attacks use unregistered nicks.

+n - No external messages. This option prevents people who are not in channel from sending messages to that channel.

+t - Only ops set topic. This command will make sure non-ops cannot change the topic of the channel. There are also a few ChanServ settings that can help with more specific topic settings (only SOps/AOps can change topic) , more on that below.

+s and +p - Both commands set the channel to be invisible in /list commands, but +s also sets it invisible in whois, both settigs are a good way to keep unwanted users out of channel.

+i - This option makes the channel closed to anyone unless an op invites them or they have ChanServ invite them using the /chanserv invite command, which is a good technique for clone protection. (More on that in the Security section).

+m - This option prevents anyone who is not voiced or OPed from talking in the channel.

+c - This option will disable any control codes (color, bold, underline, reverse) from being sent to the channel and will those messages. Also useful against clone attacks.

For more information on modes check out http://docs.dal.net/docs/modes.html

Note: Some of the options require another argument (ie. +l needs a number, +k needs a password) so the arguments need to be specified in the order of the options. (ie. +kl password number)

Example: /chanserv set #mystro mlock +ntR-s

This command would set #mystro to +ntR-s which means only ops can change topic, no external messages, registered nicks only and secret can't be set.

16.5 Setting OPGUARD on and off

Syntax: /chanserv set #channel opguard on/off

Information: When this argument is set on only HOps, AOps, SOps, Managers and the Founder will be allowed to be an op in the channel, everyone else will automatically be deopped.

16.6 Setting VOICEGUARD on and off

Syntax: /chanserv set #channel voiceguard on/off

Information: When this argument is set on only users with VOP access will be allowed to be voiced in the channel.

16.7 Setting KEEPTOPIC on and off

Syntax: /chanserv set #channel keeptopic on/off

Information: If a channel becomes empty (last person leaves), ChanServ will save the topic if this option is set on so that next time someone comes in the topic will be recreated with the nick who set it. Users can check if the option is on by using /cs info #ChannelName to see if "Sticky Topics" is visible in the output.

16.8 Making a URL show in the info

Syntax: /chanserv set #channel url [URLhere]

Information: This command lets you set the URL for your channel which can be viewed through the /chanserv info command. To remove a URL, type the command without a URL at the end.

16.9 Ops have to identify before getting opped

Syntax: /chanserv set #channel ident on/off

Information: The ident argument regulates whether people can get opped in the channel automatically without having to identify (access list) or must identify. (Please see http://docs.dal.net/docs/nickserv.html#5 for more information on access lists).

16.10 Restricting a channel to HOps and higher

Syntax: /chanserv set #channel restrict on/off

Information: The RESTRICT argument, when set on, will not allow anyone who is not on the channel access list to join the channel and will automatically kick and ban them.

16.11 Turning VERBOSE on and off

Syntax: /chanserv set #channel verbose on/off

Information: The VERBOSE argument, when set on, will notify channel ops of any changes made to the channel access list (ie. aop added/removed, sop added/removed, akick added/removed).

An example of output would be:

-ChanServ:@#mystro- [VERBOSE] Mystro!mystro@sun.2kservices.com => aop #mystro add |Mystro|

16.12 Setting who can change the topic

Syntax: /chanserv set #channel topiclock founder/sop/manager/off

Information: The TOPICLOCK command, when turned on, will allow you to set who should be able to change the topic: You (the founder), a SOp, a Manager or anyone else (off).

16.13 Allowing users who join to stay opped

Syntax: /chanserv set #channel leaveops on/off

Information: This command, when turned on, will not deop the first user to join the channel regardless of whether he is an op or not, if set off (as it is by default), it will deop anyone who is not AOp or higher. It is recommended you leave this setting untouched for security.

16.14 Making the channel private

Syntax: /chanserv set #channel private on/off

Information: When this option is ON, only those who know about the channel will have access to it and it will be hidden from the users.dal.net channel list. Also, when this option is turned on, the /msg chanserv@services.dal.net INVITE option is disabled.

16.15 Setting who may send channel-wide memos

Syntax: /chanserv set #channel memo none/hop/aop/sop/manager/founder

Information: This command allows the founder to manage who may send channel memos. When memo is set to none, no one can memo; when memo is set to HOp, all people on chanserv's access list may memo, when memo is set to SOp only founder and sops may memo and when the option is set to founder only the channel founder may send channel wide memos.

16.16 Setting the successor of the channel

Syntax: /chanserv set #channel successor nickname / -

Information: This command allows the founder to set the successor for the channel in case the nickname of the founder expires. When and if the nickname expires the channel will be turned over to the successor with all rights and privileges of the founder. If you wish to disable the successor feature in your channel, use a hyphen ("-") instead of a nickname. If the founder's nickname expires, and that channel has a successor, the following will occur: A memo is sent to the channel's succesor with an AUTH code. The successor must use the AUTH code to authorize himself in the channel within ten (10) days. If the successor does so, a random password is generated that can be used to identify and become the founder. If the successors nick expires, or the successor doesnt take any action within ten (10) days, the channel expires as normal. A user can prevent himself from being added as a successor to a channel if he has enabled the NOOP option on his nickname (see http://docs.dal.net/docs/nickserv.html#6.7 )

16.16.1 ·Removing yourself as Successor

If you want to remove yourself as successor of a channel you can use the following command to do that

Syntax: /chanserv successor #channel DEL

Note: You must be using the Nickname that is listed as successor and you must be identified to it.

Example: /chanserv successor #Help DEL

You can see in what channels you are listed as successor by going to http://users.dal.net . Log in with your registered nickname and password, then select from the navigation menu "DAL Channels" and then select the option "What channels am I Successor in?"

16.16.2 ·Resending the Authorization Request

Syntax: /chanserv sendauth #channel S

Information: When a founders nick expires, the successor will be sent an AUTH code by MemoServ to gain access to the channel. If the first memo fails, the successor can re-request the AUTH code to be sent to them again through memoserv using the command

16.17 Setting the mailblock option for the channel

Syntax: /chanserv set #channel mailblock on/off

Information: This command allows the founder of a channel to turn on/off mailblock on his channel, by that enabling/disabling the option for the channel password to be sent to the email on file in case of a lost password.

Note: By enabling this command, the founder no longer has the option to retrieve his password incase it is lost/forgotten. The mailblock option should NOT be turned on unless the founder is absolutely sure that he is not going to forget/lose the password.

17 · Inviting yourself into the channel

Syntax: /chanserv invite #channel

Information: This command will invite you into a +R/+O/+i/+l/+k/+b channel or a channel which you have been banned from by someone. You must be an VOp or higher to use that command.

18 · Viewing the access of a person

Syntax: /chanserv acc/access #channel [nick]

Information: This command lets an AOp or higher see what access he/someone else has to the channel. The access is displayed numerically, below are the definitions:

-2 = Channel is frozen or closed

-1 = AutoKICKed from the channel

0 = basic

5 = AutoVoice

8 = Halfop

10 = AutoOp

20 = SuperOp

30 = User has MANAGER access

40 = Has founder access via a NickServ access list mask

50 = Has founder access via identification to NickServ

60 = Has founder access via identification to ChanServ

If the USER is not online, the access will be 0.

Note: You must be added to the channel list to use that command.

Example: /chanserv acc #mystro mystro

The following reply would come from ChanServ:

-ChanServ- Mystro ACC #mystro 50 (Founder)

19 · Why a person opped

Syntax: /chanserv why #channel nick

Information: The WHY command does the same thing as the ACC/ACCESS command, however it returns the status of the user in AOp/SOp/Founder form with no access level. It will also tell you when someone is using a different nickname what nickname he has access to that let him become opped. Also it tell you the status of the channel.

Note: You must be an AOp or higher to use that command

Example: /chanserv why #docsteam Zappu

Below is what you would receive from ChanServ

-ChanServ- Zappu has SOP access to #docsteam. Reason: Identification to the nickname Zappu. Channel Frozen: NO

20 · Unbanning yourself and others

Syntax: /chanserv unban #channel [nick/*/nick!user@host]

Information The UNBAN command will unban all masks that match your nick!user@host if you do not specify a nickname. AOps may also unban a specific user or a host. SOps can unban everything by specifying the * sign instead of a nickname.

21 · Count the channel entries

Syntax: /chanserv count #channel

Information: This command counts all the AKicks, Halfops, VOps , AOps , SOps and Managers in a channel and gives you the number in a reply.

Example: /chanserv count #mystro

This will return the following:

-ChanServ- Channel: #mystro - VOP: 35 HOP:1 AOP: 27 SOP: 3 MANAGER: 1 AKICK: 9

22 · Listing channel accesses

Syntax: /chanserv listops #channel

Information: This command lists all the VOPs, HOPs, AOPs, SOPs, managers and founder of the channel. Limited to AutoOps or above.

Example: /chanserv listops #docsteam

This will return the following:

-ChanServ- Founder:

-ChanServ- Fredfred (fredfred@staff.dalnet)

-ChanServ- Manager[s}:

-ChanServ- Sop(s):

-ChanServ- eDdYk0nG (eddykong@118.128.268

-ChanServ- Zappu (zappu@123.345.789)

-ChanServ- Aop(s):

-ChanServ- Uzay (uzay@123.123.123)

-ChanServ- Vop(s):

-ChanServ- Ufo (ufo@ip25.ip-167-114-218.net)

-ChanServ- Hop(s):

-ChanServ- Phoenix (h@2607:f8f8:790:5::1234)

23 · Finding information on a channel

Syntax: /chanserv info #channel

Information: The INFO command allows one to see specific information about channels (chanserv settings, topic, registry date, last op date, etc.)

Example: /chanserv info #mystro

This command will give out the following information:

-ChanServ- Info for #mystro:

-ChanServ- Founder : |Mystro| (mystro@66.38.188.104)

-ChanServ- Mode Lock : +nt-ilk

-ChanServ- Description: My little home on the net.

-ChanServ- Options : Verbose

-ChanServ- Memo Level : AOP

-ChanServ- Registered : Thu 09/30/1999 03:07:00 GMT

-ChanServ- Last opping: Sat 04/21/2001 13:54:14 GMT

-ChanServ- *** End of Info ***

This shows that the founder is |Mystro| with the host mystro@66.38.188.104, the channel modes are +nt-ilk, the description is 'my little home on the net.' etc.

24 · Channel Security

Now that you have gotten yourself familiarized with the ChanServ commands, it's time to move on to a very important topic: Channel Security. Each day, many people join channels such as #operhelp in order to receive help with channel takeovers, forgotten passwords, etc... Here are some tactics to help you fight all of the security problems.

1) Make your password use uppercase and lowercase letters, as well as numbers. This makes passwords much harder to guess.

2) NEVER EVER give out your password to anyone who you wouldn't trust with your life. DALnet does not help users who shared their password and later found it misused.

3) Add SOps very carefully. Also, add AOps very carefully. Don't add anyone who you don't know very well to the OP list.

4) Once the channel is registered , Chanserv set +nt-k as MLOCK ,So if you want to set a password for your Channel , you have to remove the -k from the MLOCK and keep the +nt for channel protection , Syntex of removal the MLOCK is : /chanserv set #channelname mlock +nt

5) Don't create an auto-identify script. If you do, make sure you don't give out the script with the auto identify or you may be in serious trouble.

6) Rotate your password at least once every couple of months.

That's about it. You may want to take a look at the Passwords document ( http://docs.dal.net/docs/passwords.html ) for more information on passwords.

25 · Channel Expiration

A channel expires when no op or the founder does *NOT* join within 30 days. To keep your channel registered for a longer time, you need to join your channel at least once a month to keep it active. Also, you need to add Manager/Sop or Aop to maintain the channel incase you are busy and cannot connect to DALnet for any reason. For more information about adding ops, please visit http://docs.dal.net/docs/csaccess.html#4.3.

If your channel has expired due to levels of inactivity, and the rest of users have been masskicked by chanserv to empty the channel, you will see the below notice:

-ChanServ- The channel #Your-Channel has been recently re-opened by DALnet, the first registered user who joins it will get opped and will have 5 minutes to register it.

That means you have failed to join the channel within 30 days, and no active channel operators joined to keep your channel registered. For more information https://www.dal.net/kb/view.php?kb=199

One common problem that most channel founders face is Opping unknown people. To develop and secure your channel please check http://docs.dal.net/docs/chandev.html#5 , for more instructions.

Note: If the channel is NO longer registered and collected by another user, you cannot get it back until it expires after 30 days due inactivity. For more information please join #OperHelp .

26 · Conclusion

Now that you are familiar with the ChanServ commands you're ready for the privileges and responsibilities of being a founder. You may also want to check out the NickServ documents for some information on the NickServ commands and settings.

For more information on AKicks, AOps and SOps, please take a look at the Chanserv Access document located at http://docs.dal.net/docs/csaccess.html