Editor's note:
This is a classic help file dating back to the 1990s when IRC was very new.
We still keep this file here for historic value, and also because the general
information is still accurate. If you are interested in other, more up to date help files,
see IRC FAQs and Help Files.
In particular, we completely rewrote this guide to create The New IRC Channel Operator's Guide which covers all the information you need to run a stable, successful channel.
If you do read the following for historic reasons, you should be warned that this file contains outdated advice which is either outright wrong or can get you into serious trouble if you try to use the information as a "terrorist manual" to attack other people. Everything on IRC has consequences just like in real life. Troublemakers can and will be sanctioned, including reprisal attacks from other users, official kills and bans from IRC operators, the revocation of your Internet Service Provider account, and/or legal action. Type /motd and read the rules of whatever server you are using, and follow them carefully!
-Jolo
This guide is available in plain text from
http://www.irchelp.org/irchelp/text/opguide.txt
or as a web page from
http://www.irchelp.org/irchelp/opguide.html.
Typically, servers run 24 hours a day, 7 days a week, waiting for clients to connect. Clients, on the other hand, typically only run when a user wishes to use IRC, although there are exceptions to this rule, specifically bots.
When you type /server irc-2.mit.edu in ircII, you are opening a connection to the machine irc-2.mit.edu. (Typically, though not always, the client connects to the server on port 6667. When you type /server irc-2.mit.edu, ircII assumes this to be the case. If you actually wanted to connect to port 6665, you can type: /server irc-2.mit.edu 6665.)
irc-2.mit.edu, in turn, is running a server program which is connected to a large number of other machines running server programs (usually just called servers). It relays what you type to the other servers, and it relays what users on those other servers type to you.
Each server keeps a list of what is going on in each channel its users are on, and when a user on any server changes anything on that list, that user's server notifies all the other servers of the change.
When net traffic gets heavy (not just IRC traffic, but all net traffic) then the links get overloaded and break. This is called a "netsplit." When someone netsplits, it looks like this:
*** Signoff: Thoth (eff.org dewey.cc.utexas.edu)
This indicates that the connection between eff.org and dewey.cc.utexas.edu is the one that broke down, and that you are on the eff.org side of the netsplit, while Thoth was on the dewey.cc.utexas.edu side. This does NOT mean either that Thoth is necessarily on dewey or that you are necessarily on eff.org; just that Thoth was on that side of the split and you were on this side.
When a link between your server and another server breaks, then anything done on your server won't be relayed to that server, and anything done on that server won't get back to you -- at least not until the net rejoins.
So, the split server could have new ops that were made while it was split, or new bans, or new users.
When the server rejoins, it updates everyone on what has been going on, which is why you will see something like:
*** Mode change "+o Thoth" on channel #bdsm by dewey.cc.utexas.edu
That was the server dewey.cc.utexas.edu "synching" its information with everyone else's and telling everyone it had a new op.
Sometimes, the server updates don't work, and servers persist in seeing their own view of reality. For example, picture this:
*** Mode change "+o Thoth" on channel #bdsm by dewey.cc.utexas.edu
*** Mode change "-o Thoth" on channel #bdsm by SilverOz
A server, in this case dewey, opped Thoth. Then SilverOz immediately deopped him. SilverOz most likely deopped him before her server had a chance to tell Thoth's server that SilverOz was an op. If Thoth also tried to deop SilverOz, from Thoth's perspective, the whole incident looked very different:
*** Mode change "+o SilverOz" on channel #bdsm by eff.org
*** Mode change "-o SilverOz" on channel #bdsm by Thoth
So, the eff.org side sees SilverOz as opped and Thoth as deopped; the dewey side sees the exact reverse. The dewey side will now ignore anything that SilverOz does that requires ops, and the eff.org side will likewise ignore anything Thoth does that requires ops. The message you'll receive will look like this:
(Thoth types:)
/mode * +b *!*zjohnsto*@*scu.edu.au
/kick * silveroz Go away
(Thoth sees:)
*** Mode change "+b *!*zjohnsto*@*scu.edu.au" on channel #bdsm by Thoth
*** Not channel operator (from eff.org)
*** SilverOz has been kicked off channel #bdsm by Thoth (Go away)
*** Not channel operator (from eff.org)
SilverOz would not even see the ban or the kick, since her server doesn't acknowledge Thoth's ops as legitimate. Thus, people who are connected to one server may see bans and ops that people connected to another server can't, even though all those people can see each other and are talking. When that happens the server is said to be "desynched."
Note here that SilverOz WOULD STILL BE ABLE TO SEE EVERYTHING THOTH SAYS ON CHANNEL, EVEN THOUGH THOTH THINKS HE KICKED HER OFF. Because he kicked her off, whenever she tries to send text to channel, she will get a message that says:
*** Can't send to channel (from dewey.cc.utexas.edu)
Since Thoth's server doesn't think she's on the channel, it won't relay what she says to Thoth. But, since SilverOz's server thinks she's on the channel, it will relay whatever it sees Thoth saying to her.
Note also that SilverOz can leave the channel on her side and rejoin. From Thoth's perspective, she will join the channel even though he banned her, because her server will inform all other servers that she joined. Thoth's server will simply accept that as a fact without checking the ban list.
For more consequences of splitting, see 3. How the hackers take channels (and what to do about it)
/mode #channel +nt
but typing * is quicker. However, some clients require you to use the full name.)
*** Thoth is ~thoth@disco.intercon.com (Far and Away)
*** on channels: *private*
*** on IRC via server dewey.cc.utexas.edu (UT's "I Repeat Class" server)
NOTE: A channel cannot be both +p and +s
*** Thoth is ~thoth@disco.intercon.com (Far and Away)
*** on IRC via server dewey.cc.utexas.edu (UT's "I Repeat Class" server)
NOTE: A channel cannot be both +p and +s
This is one of those commands it is nice to have an alias for -- see the section on scripts for how to write an alias. Also note that it's often adviseable to ban a user before you kick them -- that way they don't jump back on channel during the interval before the ban takes effect. See section 2.6.1.5 for further details.
So, anything to the right of the ! is a nick, anything between the ! and the @ is the user portion (also called account, or account name) and anything to the right of the @ is the host.
"*Oz" will match "SilverOz" and "AgOz" and "SilverOOz" but not "Silver" or "SilverOzz."
"*.hacker.com" will match "bozo.hacker.com" and "luser.hacker.com" but not "hacker.com" itself.
Note that some users can change their account name as easily as the rest of us change our nicks. This means you will have to ban their entire host, or possibly their entire domain, to keep them off the channel.
This ban is pretty useless against people, but can be used to get rid of bots, who usually don't change their nicks. (Some bots do, though. Incidentally, on EFnet, you can see the bans on any channel, whether you are on the channel or not, by typing /mode # channelname b.) It can also be used to get rid of an idle user you have kicked who has auto-rejoin set on, and immediately comes back on channel. In that case, ban them, then unban about 5 mins later.
/mode *!*joe*@*.hacker.com will ban the first account, but not the second.
You can also ban users from particular machines, so if you wanted to ban users from alsvid.scu.edu.au but not angus.scu.edu.au, you could type
Ok - cut to the chase.
Networks from 128-191 are Class B.
Networks from 192-223 are Class C.
Treat everything else as Class A.
You can ban by /mode * +b *!*zjohnsto*@203.2.20* but that will ban people from 203.2.202.4 for example, quite likely a completely different domain. The moral: include the ending period when banning by IP address.
Now you know more than you ever wanted to about IP network addressing.
This task can be made simpler and more efficient by combining modes. For example, to remove Thoth from the channel, you could do the following:
< Commands entered by SilverOz: >
/mode * -o+b thoth *!*thoth*@*intercon.com
/kick * thoth Get out you wanker
The mode change command effectively de-opped Thoth first and then
instantaneously banned him.
To clear old bans you have to remove them *exactly* as they were
written - a terminal with cut and paste is invaluable for this. If you
make a mistake, the system won't warn you, it will tell you the ban
is removed, even when it hasn't been. You must get the ban exactly
right.
If that happens, then clear one or more bans, and try again.
How similar is similar, you ask? Well, a ban is deemed "too similar" if the
nickname portion or the user and host portion of the ban match the parameters
of any other already existing ban.
By the way, there is no announcement that the person that just joined did so
because of a split -- it looks exactly like a regular join.
IRC channel takeovers happen. Why? Bored dweebs with way too much free time,
looking for "thrills." People who feel the current channel ops have insulted
or annoyed them. People just seeing if they can.
Ignoring the hackers is a valid option, particularly in the case of small
channels. If you don't need the hassle of trying to take back a channel --
and it's a pain in the ass no matter how you look at it -- then your best bet
may be to simply make a new channel and wait the hacker out. Most hackers
don't really care about the topic of the channel, have no desire to maintain a
channel, and will leave after a day or a week or a month of causing trouble.
At any rate, the idea here is to not fan the flames, to let things die by
neglect. Completely /ignoring the hacker is probably a good move.
The problem with ignoring the attackers is that it's an inconvenience and the
hackers know it's an inconvenience. They are doing it to irritate and
manipulate you and your channel. If you let them do it once, they may well do
it again and again. In my view, the only way ignoring a hacker will really
work in the long run is if you really *don't* care about what channel you are
on, if you and all your users can all go from #ductape to #ductape1 and be
just as happy. If you really do care, ignoring won't do for long.
The third option is to try and defend your channel. Here are some very basic
defences. If you really want to fight hard, you will need good IRC skills,
programming ability, good bots, and a hell of a lot of time.
Some general rules:
One of the simplest ways is to take the nick of someone you know is a usual
channel op. Then you join, and pretend to be that person. You ask for ops,
saying its a borrowed account, or you just wait for someone to op you.
What to do about it:
Yes, it seems incredible, but *lots* of people will op on nick alone. The
moral is *always* do a /whois before opping someone.
Most scripts like Toolbox Axis and (ugh) Phoenix op on user@host. Beware of
using a script to auto-op people as usernames can be faked.
If you are using the nick Fred, and someone on a split server chooses that
nick, when the servers rejoin, you are both always automatically /killed
(kicked off of IRC) by each other's server. Hackers are OK with this, because
they make sure the thing that is taking your nick is just a bot. They
themselves are not killed because you were not expecting them and did not put
up a bot that used their nickname. Obviously, when you were killed, you lost
ops on whatever channel you were on, so you were no longer in a position to
defend the channel.
If the nick collider successfully collides every op on the channel, then
nobody is around to deop him when he gets opped by the server. Since he's the
only op, he wins...sort of.
Why sort of? Well, this kind of thing always happens when the net is
unstable. Thus, he may successfully collide everyone, only to split off
again. If you can regain ops during that interval and change your nick, you
have a chance to avoid getting collided again. The smarter hackers, though,
often have spies -- either their own clients or someone else's -- sitting on
the channel on your side of the split, telling the hacker who the ops are.
What to do about it:
A server may split and no one from your channel is on that server.
If someone joins it while the server is split, they get ops (because as
far as that server is concerned, no one was there).
When the server rejoins, it will tell all the other server those people
have ops.
What to do about it:
Always de-op people who come in opped from split servers. you can always op
them later. If you are serious about your channel, you should run a bot that
does this, else you can get scripts that can do it.
If someone comes in opped, you de-op them, they leave the channel, and a few
minutes later, back they are again, opped...ban them. Once is accident, twice
is hacking. To get opped twice like that, they would have either had to deop
you on their server, which is bad, or they would have had to leave the channel
and rejoin again during the split -- a lot of effort to go to, and for not
much good purpose, except to grab ops. [Of course if you know them, use
discretion... maybe /msg them see what is going on.]
[See the section on servers]
What to do about it:
The solution is simple (in theory): If you have ops on your side, make the
channel +i. Then kick everyone off. Finally, leave and come back (come back
QUICKLY!). You will be reopped on all servers, because your server will
perceive you as being the only person on the channel (everyone else was kicked
off, as far as your server is concerned). The side on which you were not
opped will see:
*** Thoth has left channel #bdsm
*** Thoth (~thoth@disco.intercon.com) has joined channel #bdsm
Also, bear in mind that this is not a particularly useful tactic against
reasonably competent hackers. Such hackers will simply put up bots that auto-
deop server ops. When they see your server op you, they'll deop you and
you'll be right back where you started.
Whoever installed irc-ii should have also installed the script
directory, and you can load the standard scripts by typing
The two most useful ones are:
*Susan* What do you think of Asshole for ops?
My preference is to use notices to communicate administrivia like rules
announcements, coming events, ftp sites etc. For one thing, it means the
output is less likely to get lost in the scroll because it looks different.
An example notice is:
/alias rules notice * RULES: Don't shout, don't talk about politics and
don't annoy the ops!
This will send a notice to everyone on the channel when you type /rules.
if you want it to appear as normal IRC speech:
/alias rules say RULES: Don't shout, don't talk about politics and don't annoy
the ops!
I have tried both DaveMan's ToolBox and DeadelviS's DeTurbo and they
both seem to be quite good.
last modified Jan 20, 1997
*** Mode change "-o+b thoth *!*thoth*@*intercon.com" on channel #bdsm by
SilverOz
*** Thoth has been kicked off channel #bdsm by SilverOz (Get out you
wanker)2.6.2. Clearing bans
(NOTE: This works regardless of whether you are on or off channel, but
of course if you are off channel you have to use the channel name,
/mode #channel b.)
/mode * -b *!*zjohnsto*@*scu.edu.au2.6.3. Why a ban may not work
Sometimes you ban someone, and they come right back onto the
channel anyway. This could be that you didn't ban them properly
in the first place! But if the ban looks OK, then there may be
something else.... 2.6.3.1. Too many bans
A channel can only hold 20 bans at a time. If you try and ban
someone and there are already 20 bans up, then you won't get a
mode changed message, you won't get anything at all.
2.6.3.2. Similar bans
If there is already a ban in place that is similar to the one you are
trying to place, then yours won't work. Remove the bad or
redundant ban, and try again.2.6.3.3. Desynched servers
This is a nasty problem. If a server becomes desynched, then a hacker
can get on the channel on that server because the ban you just placed
won't be in the split server's memory. Thus, the hacker can leave
and rejoin at will, and to you, it looks like the hacker joined, ban or
no ban. See Section 1.3 What happens when a server splits.2.6.2.4 Split servers
When a split server rejoins, all the people on the split server join the
channel on the other server, period. Bans do not matter. You can kick them
off once they have joined, of course, but bear in mind that this is not always
a good idea, necessarily, especially during a takeover attempt, because they
will still be able to see what you say, but you won't see what they are
saying!3. How hackers take channels (and what to do about
it)
Time for a little soapbox sermon, on IRC takeovers and counter-strategy.
The problem with appeasing channel hackers if that this often leads them to
believe that hacking or threatening to hack your channel is a good way to
intimidate or manipulate you. Experience shows that appeasing a channel
hacker frequently results in continued harassment and continued hacking.
Basically, if you want to try appeasement, you should make sure the hacker
does not go away with the idea that his or her hacking was worth it. On the
other hand, this may defeat the idea of appeasement.
Of course, making the channel +i means that no one can join the
channel unless they know the alternate nicks of the ops, so it will
disrupt normal life quite a lot. 3.1. Op/friend impersonation
What it is:3.2. Nick colliding
What it is:
3.3. split server
What it is:3.4. desynched server
What it is:
This basically boils down to you having ops on one half of IRC, and the
hackers having ops on the other half (or nobody having ops on the other half).
*** Thoth (~thoth@disco.intercon.com) has joined channel #bdsm
*** Mode change "+o Thoth" on channel #bdsm by dewey.cc.utexas.edu
Can this go wrong? You bet it can. If someone -- anyone, from any connected
server -- joins the channel between the time you leave and the time you come
back, THEY -- not you -- get opped from your server. Worse, YOU don't get
opped. When you join, you see:
*** Users on #bdsm: Thoth @SomeDude
This is a sure sign you timed it wrong. If the other person is the hacker,
you are in deep trouble, if they are a normal user you can try and persuade
them to leave.4. Some useful scripts
There are lots of big script packs on the net. Deturbo, Axis, Phoenix,
etc...I personally don't like a lot of them because
If it doesn't work, chat to them.4.1. standard scripts
There are *lots* of scripts that come with irc-ii, and they are worth
looking through if you want to learn irc-ii scripting.
4.1.1. tabkey
This helps you deal with /msgs.
will appear on your command line, ready for you to type your msg. Saves those
embarassing moment when you forget the / and your msg is broadcast to the
channel, and saves the annoyance of typing, or mistyping, someone's nick.
However, it doesn't save those embarassing moments when you tab up the wrong
person and hurriedly type and send your message without watching who it's
really going to.
*Asshole* Will you sponsor me for ops?
-> *Asshole* I think Asshole would suck for ops. He is an idiot.
4.1.2. Cursor
Cursor gives you the ability to edit your command line using the
arrow keys, with left arrow and right arrow moving along the
current line, and up arrow and down arrow moving through your
command history. 4.2 Writing aliases
Sometimes you just want to be able to repeat yourself. Your channel may have
rules of behaviour, or other things you tend to say often. You can use simple
aliases to automate those.
which allows you to type /k Luser Get off my channel
instead of having to type /kick * Luser Get off my channel4.3 Script Paks
If you do want a script, then get a smallish one (so it is reasonably
quick and doesn;t take scads of memory) written by a reputable person
and get it from that person;s FTP site.
(DeadelviS has a few script packs you might want to check, zer0
has also been recommended)You can also get ToolBox from there or from DaveMan's own site at
NOTE! IT is very important you only get a script from a reputable
source
and you get it from a known site, such as the author's own ftp site.
A "backdoor" is very very easy to write, and a 2 line alias hidden in
a 200k file can be used to access your account. 5. Other Useful Files
5.1. FAQs
5.2. IRC Primer
Copyright © 1996,1997 Joseph Lo
and many others.