Operating IRC

From GnuCash
Revision as of 11:22, 1 October 2023 by Fell (talk | contribs) (Capitalize section titles)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

As we are managing an IRC channel, here is some background, including a few operator commands.

Prefix of commands to:
IRC servers: /
gncbot: @

Gncbot

Usually at code.gnucash.org gncbot, currently a Supybot, is running. He has several administrative tasks like granting rights and logging. There a several ways to contact him:

<you> /msg gncbot <bot command>
or shorter
<you> @<bot command>
In the previous method the <bot command> is always visible to other users, but also in the first, if you mistyped it. If you have to enter a password it is safer to use
<you> /query gncbot
opens (in modern chat clients) a new window with a private query to the bot
<you> <bot command>
  • If you are in the operator group, he should grant you operator rights after identifying.
  • If gncbot got disconnected, sombody has to grant him the rights again:
/op gncbot to op the gncbot. @op gncbot returns an error.
  • If gncbot got a wrong name like gncbot', rename him by
   @nick gncbot

Getting Operator Privileges

If you become a core developer of GnuCash, Operator Privilegs will be granted to you. There a two alternative ways to activate them (Gncbot is the preferred method):

From Gncbot

Setup
  1. You need to register your nick[s] and a password once with gncbot. The easiest way to do that is to:
    <you> /msg gncbot register <name> <password>
    
  2. Once you are registered, the channel owner needs to add you to the list of channel operators so that gncbot knows to provide channel ops. This is done via the capability add admin function:
    <admin> capability add <username> #gnucash,op
    
Usage
  • Each time you connect, open a query with gncbot:
    <you> identify <nick> <password>
    <gncbot> The operation succeeded.
    <you> op #gnucash
    
  • You can also do this within the #gnucash channel directly:
    <you> /msg gncbot identify <name> <password>
    <gncbot> The operation succeeded
    <you> @op
    <gncbot> The operation succeeded
    
Warning
If you mistype the /msg command, your password gets exposed to the channel and its logs.

From IRC NickServ and ChanServ

Setup
  1. You need to register your nick[s] and password once at GIMPnet IRC. You do this by sending a message to the NickServ identity to register after setting your nick:
    <you> /msg nickserv register <password> <email>
    <nickserv> The operation Succeeded
    
    Note
    The email will be used in other nickserv commands like resetpass.
  2. The channel owner then needs to add you to the list of users in the Channel Server. This is done by setting the user access in Chanserv:
    <admin> /msg ChanServ access #gnucash add <username> 5
    
Usage
Then each time you connect, you identify with your nick and password against GIMPnet IRC:
<you> /msg nickserv identify <name> <password>
<nickserv> The operation succeeded

Topic

The topic is displayed when a user joins the channel.

Default
/t Free GPL Personal and Small Business Accounting || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: 5.9 || www.gnucash.org/ || wiki.gnucash.org/wiki/
under attack
/t Free GPL Personal and Small Business Accounting || Moderated mode: To get a voice, register with NickServ and then re-join. || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: 5.9 || www.gnucash.org/ || wiki.gnucash.org/wiki/

See #Channel Moderation.

Notes Maintenance

IRC users can post a message to other users that are currently offline by using
@tell <nick> something

The next time <nick> speaks up in the channel, gncbot will automatically print the saved message for <nick>.

For various reasons these messages can queue up quasi forever in the bot's message queue. For example

  1. <nick> never returns to the channel.
  2. the @tell command was used incorrectly, like <nick> got misspelled, or a comma or colon were appended to the <nick>, resulting in messages being queued for <nick,> or <nick:>

There are a few commands that can help in routine maintenance on the message queue:

notes
will show all nicks for which messages are queued
notes <nick>
will show message for <nick>, including the message age
remove <nick>
will remove all queued messages for <nick>. You need to have channel operator privileges to be able to do this for anyone other than yourself (that is your nick has to be registered with gncbot with operator privileges and you have to 'identify' yourself before running remove)
Note
when on the public channel these commands should be prepended with '@' for our bot to pick them up. If in a private chat with gncbot, that's not needed.

Here are my recommendations:

  1. from time to time enter in private conversation with gncbot and check who has messages waiting in the queue.
  2. check the messages for individual nicks and if the messages are older than a year, remove them
  3. for impossible nicks (like those with a : or ,) ping the user when online and play the message for them using the @notes <impossible-nick> command in the public channel. Then remove the message.

Fighting Spam

Channel Moderation

On March 2, 2019, GIMPnet started receiving a flood of flyby spammers using random names AND a whole botnet worth of IP Addresses, making it difficult to defend against. To that end, we turned on channel moderation (requiring users to have a voice in order to say anything). This way we know users must have a registered account and can easily be banned if they misbehave. Then enabled NickServ and ChanServ to auto-voice identified users: /msg Chanserv levels #gnucash set autovoice 0

The next step was to turn moderation on in the #gnucash channel: /mode +m

Tip
In clients like Konversation you can click on topic to open a dialog to set topic, modi and bannlist.

This gets accepted but has no effect: /msg ChanServ mode #gnucash set +m

If we feel that we don't need it anymore, we can turn it off (/mode -m and no longer require users to have a voice.

Secret Channel

On September 30, 2023 we got spammed again. On 2023-10-01 we have set mode: +s. We hope the spam bots are using /msg ChanServ list * to get their targets. then they will not see us.

Freenode Redirect

User:Jsled created in 2010 irc.freenode.net/gnucash with /topic „The real #gnucash is irc://irc.gnome.org/gnucash ; GnuCash - GPL Personal Finance and Small Business Management“.

Further Reading

Because under attack heavy delays can happen, some help is cached here.

ChanServ Help

/server irc.gnome.org
/msg ChanServ help
will return a text like
ChanServ allows you to register and control various aspects of channels. ChanServ can often prevent malicious users from "taking over" channels by limiting who is allowed channel operator privileges. Available commands are listed below; to use them, type
/msg ChanServ command. For more information on a specific command, type /msg ChanServ HELP command.
     BAN            Bans a given nick or mask on a channel
     DROP           Cancel the registration of a channel
     GETKEY         Returns the key of the given channel
     HELP           Displays this list and give information about commands
     INFO           Lists information about the specified registered channel
     INVITE         Invites you or an optionally specified nick into a channel
     KICK           Kicks a specified nick from a channel
     LIST           Lists all registered channels matching the given pattern
     REGISTER       Register a channel
     STATUS         Find a user's status on a channel
     UNBAN          Remove all bans preventing a user from entering a channel
  
Used to manage the list of privileged users
   ACCESS, AOP, FLAGS, HOP, LEVELS, QOP, SOP, VOP
  
Used to modify the channel status of you or other users
   DEHALFOP, DEOP, DEOWNER, DEPROTECT, DEVOICE, DOWN, HALFOP, OP, OWNER, PROTECT, UP, VOICE

Used to manage channels
   AKICK, CLONE, ENFORCE, ENTRYMSG, LOG, MODE, SET, SYNC, TOPIC

Use the HELP ALL command to list all commands and their descriptions.

Note that any channel which is not used for 6000 days (i.e. which no user on the channel's access list enters for that period of time) will be automatically dropped.

Back to Project Administration