Difference between revisions of "Operating IRC"
(→Topic: use {{Version}}) |
m (Capitalize section titles) |
||
(25 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | As we are managing an [[IRC]] channel, here is some background, including a few operator commands: | + | As we are managing an [[IRC]] channel, here is some background, including a few operator commands. |
− | + | :Prefix of commands to: | |
+ | ::'''IRC servers''': <code>/</code> | ||
+ | ::'''gncbot''': <code>@</code> | ||
==Gncbot== | ==Gncbot== | ||
− | Usually at '' | + | Usually at ''{{BuildServer}}'' '''gncbot''', currently a [https://github.com/Supybot/Supybot Supybot], is running. He has several ''administrative'' tasks like granting rights and '''logging'''. There a several ways to contact him: |
− | + | :<SyntaxHighlight lang="irc"> | |
− | + | <you> /msg gncbot <bot command> | |
− | If you are in the operator group, he should grant you operator rights after identifying. | + | </SyntaxHighlight> or shorter <SyntaxHighlight lang="irc"> |
+ | <you> @<bot command> | ||
+ | </SyntaxHighlight> 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 <SyntaxHighlight lang="irc"> | ||
+ | <you> /query gncbot | ||
+ | </SyntaxHighlight> opens (in modern chat clients) a new window with a private query to the bot <SyntaxHighlight lang="irc"> | ||
+ | <you> <bot command> | ||
+ | </SyntaxHighlight> | ||
+ | * 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 <tt>gncbot'</tt>, rename him by | ||
+ | @nick gncbot | ||
− | If | + | ==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: | ||
+ | :# ''You'' need to register your nick[s] and a password once with gncbot. The easiest way to do that is to: <SyntaxHighlight lang="irc"> | ||
+ | <you> /msg gncbot register <name> <password> | ||
+ | </SyntaxHighLight> | ||
+ | :# 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 <tt>capability add</tt> ''admin function'': <SyntaxHighlight lang="irc"> | ||
+ | <admin> capability add <username> #gnucash,op</SyntaxHighlight> | ||
+ | ;Usage: | ||
+ | :* Each time you connect, open a query with gncbot: <SyntaxHighlight lang="irc"> | ||
+ | <you> identify <nick> <password> | ||
+ | <gncbot> The operation succeeded. | ||
+ | <you> op #gnucash | ||
+ | </SyntaxHighlight> | ||
+ | :* You can also do this within the #gnucash channel directly: <SyntaxHighlight lang="irc"> | ||
+ | <you> /msg gncbot identify <name> <password> | ||
+ | <gncbot> The operation succeeded | ||
+ | <you> @op | ||
+ | <gncbot> The operation succeeded | ||
+ | </SyntaxHighlight> | ||
+ | ::;Warning: If you mistype the <tt>/msg</tt> command, your password gets exposed to the channel and its logs. | ||
+ | |||
+ | ===From IRC NickServ and ChanServ === | ||
+ | ;Setup: | ||
+ | :# ''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: <SyntaxHighlight lang="irc"> | ||
+ | <you> /msg nickserv register <password> <email> | ||
+ | <nickserv> The operation Succeeded | ||
+ | </SyntaxHighlight> | ||
+ | :#;Note: The email will be used in other nickserv commands like ''resetpass''. | ||
+ | :# 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: <SyntaxHighlight lang="irc"> | ||
+ | <admin> /msg ChanServ access #gnucash add <username> 5 | ||
+ | </SyntaxHighlight> | ||
+ | ;Usage: Then each time you connect, you identify with your nick and password against GIMPnet IRC: <SyntaxHighlight lang="irc"> | ||
+ | <you> /msg nickserv identify <name> <password> | ||
+ | <nickserv> The operation succeeded | ||
+ | </SyntaxHighlight> | ||
==Topic== | ==Topic== | ||
− | ;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: {{Version}} || | + | The topic is displayed when a user joins the channel. |
− | ;under attack: /t Free GPL Personal and Small Business Accounting || Moderated mode: To get a voice, | + | ;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: {{Version}} || {{WebServer}} || 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: {{Version}} || {{WebServer}} || wiki.gnucash.org/wiki/ | |
+ | See [[#Channel Moderation]]. | ||
+ | |||
+ | ==Notes Maintenance== | ||
+ | IRC users can post a message to other users that are currently offline by using <syntaxhighlight lang="irc"> | ||
+ | @tell <nick> something | ||
+ | </syntaxhighlight> | ||
+ | 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 | ||
− | ==Freenode | + | # <nick> never returns to the channel. |
+ | # 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: | ||
+ | # from time to time enter in private conversation with gncbot and check who has messages waiting in the queue. | ||
+ | # check the messages for individual nicks and if the messages are older than a year, remove them | ||
+ | # 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: <code>/msg Chanserv levels #gnucash set autovoice 0</code> | ||
+ | |||
+ | The next step was to turn moderation on in the #gnucash channel: <code>/mode +m</code> | ||
+ | :;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: <code>/msg ChanServ mode #gnucash set +m</code> | ||
+ | |||
+ | If we feel that we don't need it anymore, we can turn it off (<code>/mode -m</code> 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 <code>/msg ChanServ list *</code> 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“. | [[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=== | ||
+ | <Syntaxhighlight lang="irc"> | ||
+ | /server irc.gnome.org | ||
+ | /msg ChanServ help | ||
+ | </Syntaxhighlight> | ||
+ | will return a text like <Syntaxhighlight lang="irc"> | ||
+ | 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. | ||
+ | </Syntaxhighlight> | ||
+ | |||
+ | ---- | ||
+ | Back to [[Project Administration]] |
Latest revision as of 11:22, 1 October 2023
As we are managing an IRC channel, here is some background, including a few operator commands.
- Prefix of commands to:
- IRC servers:
/
- gncbot:
@
- IRC servers:
Contents
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:
- or shorter
<you> /msg gncbot <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> @<bot command>
opens (in modern chat clients) a new window with a private query to the bot<you> /query gncbot
<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
-
- 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>
- 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
- You need to register your nick[s] and a password once with gncbot. The easiest way to do that is to:
- 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.
- Each time you connect, open a query with gncbot:
From IRC NickServ and ChanServ
- Setup
-
- 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.
- 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
- 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:
- 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
- <nick> never returns to the channel.
- 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:
- from time to time enter in private conversation with gncbot and check who has messages waiting in the queue.
- check the messages for individual nicks and if the messages are older than a year, remove them
- 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
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