Previous Section  < Day Day Up >  Next Section

Hack 9 Register Your Channel with ChanServ

figs/beginner.gif figs/hack9.gif

Are you having problems with unruly users causing mayhem in your channel? Protect your channel with the ChanServ service.

So you've just created your own channel. If you were the first person to join the channel, then it is likely that the IRC server will have made you into a channel operator. Other users are free to wander into your channel, but you have ultimate control over what goes on. Having operator status means that you can kick and ban unruly users or even moderate the channel, which means people can speak only if you allow them to. Several users have already gathered in your channel, but a software installation requires you to reboot your computer. When you return to your channel, you discover that you are no longer a channel operator! More importantly, nobody else in the channel is a channel operator. The only way to restore your operator status is to ask everybody to leave the channel and be the first to rejoin. Practically speaking, this isn't going to happen.

One solution to this problem would have been to use your operator status to grant the same status to other users in your channel. The problem with this approach is that you need to be able to trust those other users to op you when you rejoin the channel. Another problem is that netsplits (where servers in an IRC network become disconnected) and server maintenance can easily wipe out entire sets of channel operators.

2.6.1 Introducing ChanServ

The best solution to this problem is ChanServ. Many IRC networks run Services such as ChanServ, which allow users to manage their channels. Not all ChanServs behave identically, but on the whole they are pretty similar. This hack makes use of the ChanServ on the freenode IRC network. ChanServ can be treated just like any other IRC user, and you can interact with it by sending private messages. To get help on any of the features of ChanServ, simply send the help command via a private message:

/msg ChanServ help

2.6.2 Registering a Channel

To use ChanServ, you may first need to register your nickname with NickServ [Hack #8]. Many IRC networks use both ChanServ and NickServ Services. In most cases, ChanServ won't recognize you until you have identified yourself with NickServ. Also, you will need operator status in the channel you want to register. Remember that anyone with operator status can register the channel, so it's a good idea not to give away operator status to anyone else until the channel has been registered.

To register a channel, you must send some private messages to ChanServ. You can do this by opening a query window and using the register command:

<Wilmer> register  #futurama password 

<ChanServ> The channel [#futurama] is now registered under your nickname.

<ChanServ> Your channel password is [password].  Please remember it for later use.

<ChanServ> Channel guidelines can be found on the freenode website

<ChanServ> (

<ChanServ> Freenode is a service of Peer-Directed Projects Center, an IRS 501(c)(3)

<ChanServ> (tax-exempt) charitable and educational organization.

If you have not already done so, this would be a good time to read the channel guidelines for the IRC network you are using. Some networks have strict policies against off-topic or illegal channels, and finding out that a server operator has closed your channel is not a pleasant surprise.

2.6.3 Restoring Channel Operators

Each time you connect to the IRC network, you can register with NickServ so that it knows who you are. Because ChanServ and NickServ work together, ChanServ will now be aware that you are the owner of your channel. If you join your channel and find that other people are already there, the network will not grant you operator status by default. Even if there are no other operators in the channel, you can send an op request to ChanServ to restore your operator status. Because you may be in more than one channel, this command must take the channel name as a parameter:

/msg ChanServ op  #futurama 

Note that some IRC networks also require you to specify your nickname as well:

/msg ChanServ op  #futurama Wilmer 

2.6.4 Access Lists

An access list lets you assign other rights to the users in your channel. For example, you can allow another user in your channel to use ChanServ to obtain operator status. To get the current access list from ChanServ, you can send another private message:

/msg ChanServ access  #futurama list 

ChanServ will reply with a list that shows everyone who has special ChanServ privileges for your channel. Initially, this will be just you:

<ChanServ> -- Access List for [#futurama] --

<ChanServ> Num Level Hostmask                            Time since last use

<ChanServ> --- ----- --------                            -------------------

<ChanServ> 1   30    Wilmer                              5m 58s    

<ChanServ> -- End of list -

Something worth noting here is the access level. Each user can have a different access level. You probably don't want everyone to have the same rights as you have. Some people should be able to let ChanServ grant them operator status, but they shouldn't all be able to change channel settings or add other people to the access list. Being able to set the access level for each user gives you some control over this.

By default, people with an access level of 10 or more can use ChanServ to grant themselves operator status. People with an access level of 15 and higher can add people to the AKICK list, which automatically kicks and bans them. People with an access level of 30 and higher can add people to the access list. For a complete list of access levels, you can use the level command:

/msg ChanServ level 



You can, of course, change these values if you want to. For example, you may want some people to be granted operator status automatically when they join the channel. Read the help information about the level command for more information about this.

2.6.5 Adding Users to the Access List

In some cases, it is useful to add someone to the access list. For example, one of the users in your channel may have written a bot that requires channel operator status to do some of its jobs. If you are unsure whether to trust the author of this bot, you can use access levels to make things a bit safer. You don't want to give the bot more rights than it needs, so you can give the bot an access level of 10:

<Wilmer> access  #futurama  add  Bender 10 

<ChanServ> [Bender] has been added to the access list for #futurama with level [10]

<Wilmer> access  #futurama  list 

<ChanServ> -- Access List for [#futurama] --

<ChanServ> Num Level Hostmask                            Time since last use

<ChanServ> --- ----- --------                            -------------------

<ChanServ> 1   10    Bender                                          

<ChanServ> 2   30    Wilmer                              51m 24s   

<ChanServ> -- End of list -

The bot called Bender can now also get operator status in #futurama through ChanServ.

Don't forget that if someone wants to be in the access list, she must have registered her nickname with NickServ first. If this has not been done, ChanServ will not know whether that person really is who she claims to be.

2.6.6 Other ChanServ Features

Of course, there is more to ChanServ than you have seen so far. ChanServ can unban you from your channel when someone has banned you and you are unable to join and fix it. Suppose there was a bug in Bender that caused him to kick me from #futurama. To unban myself, all I have to do is this:

/msg ChanServ unban  #futurama 

ChanServ can also be used to send a welcome message when someone joins the channel. This is not like a greeting from a bot. The user will get this welcome message in a NOTICE directly from ChanServ. People who are in the channel already won't see the message.

/msg ChanServ set  #futurama  entrymsg  Welcome to the world of tomorrow! 

Another useful ChanServ feature is MLOCK, so that you can force some channel modes. If a channel mode has been forced, none of the users in that channel will be able to set or unset it. You can force a channel to be moderated (+m) like so:

/msg ChanServ set  #futurama 


mlock +m 

If you are using an IRC network with a slightly different ChanServ that does not accept these commands, remember that you can usually work out what the correct command syntax should be by using the help command.

Some IRC networks choose not to have ChanServ or NickServ Services. IRCnet is one of these networks. If you lose operator status in your channel on IRCnet, the only way to get it back is to rejoin the channel after everybody else has left. This is not the easiest thing to do, so your channel is likely to become a free-for-all after a while. This is how IRCnet works. Some people prefer this kind of unruliness, while others may prefer the stricter model of using ChanServ. This is just one of the factors in choosing which IRC network you wish to use most often.

Wilmer van der Gaast

    Previous Section  < Day Day Up >  Next Section