This is a section of the IRC User's Survival Guide. The previous section was "Power user stuff".
If you attempt to JOIN a channel that does not exist, it will be created for you, and you will be given operator status ("ops") on that channel. Subsequent users who join the same channel will not be given operator status (as long as the channel is not empty at the time they join).
Just as you can use the MODE command to adjust your own user properties, you — as a channel operator — can set certain channel modes that affect your channel:
| mode | mnemonic | property | example | comments |
|---|---|---|---|---|
| b | ban | users matching this user mask cannot join the channel nor talk on the channel | /MODE #mychannel +b *!*@*saunalahti.fi | You would typically ban someone if he acted in an abusive fashion and kicking him did not keep him from coming back and repeating the offense. A user can usually change his nickname right away, and can often obtain a new IP address by hanging up and redialling, so you will probably want to ban whole domains, or in the absence of reverse DNS, networks (e.g. /MODE #mychannel +b *!*@192.0.2.*) |
| i | invite-only | only invited users may join the channel | /MODE #mychannel +i | |
| k | key | only users who enter this password may join the channel | /MODE #mychannel +k secret | Users will need to enter the password as a parameter to the JOIN command, e.g. /JOIN #mychannel secret |
| l | limit | maximum user limit | /MODE #mychannel +l 10 | |
| m | moderation | only "voiced" users will be able to talk on the channel | /MODE #mychannel +m | |
| n | no external messages | only users on the same channel will be able to send messages into the channel | /MODE #mychannel +n | Otherwise users will be able to use PRIVMSG to send to the channel even if they are not on it |
| o | operator | give someone channel operator status | /MODE #mychannel +o MyFriend | You should be careful when giving ops, because you are basically giving away the channel. Never op someone you would not trust the channel to, and never op someone without being certain he really is who you think he is (it is easy to modify one's nickname and "real name" so that they match someone else's). On the other hand your channel should have enough ops, otherwise it may easily become stuck in an opless status |
| p | private | make the channel "private" | /MODE #mychannel +p | A private channel will not be included in a reply to NAMES command, unless the user issuing the command is on that channel |
| s | secret | make the channel "secret" | /MODE #mychannel +s | A secret channel will not be included in a reply to a LIST or NAMES command, unless the user issuing the command is on that channel |
| t | topic | prevent normal users (i.e. non-chanops) from setting the channel topic | /MODE #mychannel +t | |
| v | voice | give someone a voice, i.e. allow him to speak on the channel | /MODE #mychannel +v MyFriend | Technically, this is relevant only if the channel is moderated (mode +m). However, some non-moderated channels use this voice flag to denote loyal and trusted non-chanop users |
The above examples illustrate setting modes using the + sign. Modes can be removed by using the - sign instead. Mode changes can also be stacked on the same command line, as in /MODE #mychannel +im.
The following commands are available only to channel operators:
| command | action | example | comments |
|---|---|---|---|
| INVITE | invite someone to the channel | /INVITE MyFriend #mychannel | |
| KICK | remove someone from the channel | /KICK #mychannel Jeff Abusive language | The comment is optional |
Also, if the channel mode +t is set, only channel operators may change the channel topic (done using the TOPIC command).
Normal IRC functionality does not allow for servers to "remember" channel operators; if you leave the channel, you will lose ops. If you are the last user to leave the channel it will cease to exist, and the next person to join it will get ops. If you are the last op but not the last user to leave, the channel will become "opless", and the only way for someone to receive ops will be joining the channel at a moment when it is empty.
If your channel has a lot of users (or even a few users who idle constantly), you could give operator status to a few persons that you trust, and require them to op you (and each other) when necessary. This approach seems easy, but it is very insecure since no reliable authentication takes place; anyone with access to the same host or dynamic IP address scope could join the channel using your nickname and username, and receive ops. (Sooner or later some idiot chanop would probably even op an attacker on nickname alone.) Instead, I am going to suggest two more secure options.
The first option is the easier one. It involves running the screen program or a similar utility on a host that is constantly connected to the net; most people I know use a Unix-type server located at work, at school or at their ISP.
Basically, you start screen, join IRC, and obtain channel operator status in one way or another. When it is time to log off you "detach" the screen, leaving it to "idle" in the background (if you do not explicitly detach the session, it will be automatically terminated when you log off). The next time you log on you restart screen, reconnecting to your detached session, and your IRC session will be there waiting for you just as if you never would have logged off in the first place.
The second option is running one or more IRC robots, usually called bots. This approach is much more versatile, but also a little more complicated. You still need a constantly-connected host to run your bot on, but after installation you do not need to log onto that machine (except for performing maintenance work). The bot sits on your channel 24/7, and when you join the channel and require ops, you just start a private chat with the bot, provide a password, and the bot will op you. You may not even need to request ops from the bot since you can perform channel maintenance, such as setting bans, through the bot instead.
Not all IRC servers allow bots; check the MOTD, displayed automatically when you connect, for details on that server's bot policy and/or contact details (some servers require you to obtain authorization prior to running a bot). You can also view the MOTD for another server on the same network using the MOTD command (e.g. /MOTD irc.domain.com).
The #1 IRC bot is eggdrop, available for both Unix-like systems and Windows. eggdrop bots are very powerful; "out of the box" features include botnet support, dynamic ban lists and a telnet server, and tcl scripts can be used to customize the bot to do just about anything you want.
In real life bots do crash or become disconnected, so you may want to run several instead of just one. Three eggdrop bots, connected together to form a botnet, are often enough to nicely take care of one or more channels.
Next section: "Security".
All content © 2000–2008 Thor Kottelin, unless otherwise indicated. Any trademarks or registered trademarks mentioned on this site belong to their respective owners. Content and techniques used on this site may be available for licensing; for details, please contact the webmaster.
Conventional hyperlinking to any content on this site is highly welcomed. However, the work you are viewing must not be shown, even partly, in a context inferring or claiming it to be part of, or sponsored by, any other organization or site. Such prohibited techniques include (but are not limited to) framesets, interstitial pages, kiosk mode pop-ups, and reverse proxies.