Anope IRC Services => Anope General => Topic started by: Sami on December 18, 2019, 06:55:37 AM

Title: Protected channels only
Post by: Sami on December 18, 2019, 06:55:37 AM

I do host my own UnrealIRCd server with Anope and I would like to offer sort of "protected" channels only.

E.g. if a channel gets joined the first time (creating the channel), the following commands should run automatically in the background:

/msg ChanServ register <#channel>
/msg ChanServ set <#channel> guard on
/msg Chanserv set <#channel> mlock +prsi

Any idea how this can be achieved best?
Ideally there is a command like /create <#channel>, then all of the above happens in the background; e.g. is there a possibility to group commands?

Happy to get your feedback -
Title: Re: Protected channels only
Post by: PeGaSuS on December 18, 2019, 11:44:50 AM
1) The syntax you're using is an Atheme syntax and not Anope.

2) If an unregistered user joins a channel, to which account would be the channel registered?

3) What if a user joins a channel just because that channel exists in another network where said user is, just to check of it exists in the network?

I hope that you understand that if anyone wants to register a channel they can do so. And you can even block channel registration for normal users.

Title: Re: Protected channels only
Post by: Sami on December 18, 2019, 02:03:57 PM
Thanks -

1) Well, I have installed Anope and use this syntax :-)

2) Unregistered users should not be allowed to join channels

3) Well, I have only 1 network :-)

Last but not least - background of my question is that I would like to make it as easy as possible for users who are not experienced/familiar with IRC commands

I hope this explains it -
Title: Re: Protected channels only
Post by: Koragg on December 18, 2019, 02:18:01 PM
1) If you have Anope installed and use /cs set guard|mlock you will get an Unknown command error so best to get used to the actual Anope syntax.

2) People often have to get on IRC first to register and they might be confused why there is "no channels" (they can get in as they are not registered). Regardless, what if the channel is already registered
    by someone and another user joins? Services will try to register the channel AGAIN. Also what if someone does not wish to have +s or +i or +p set?
   Your setup, even if I changed the mode lock on my channel, would attempt to reset this mode lock everytime someone with no access on my channel recreates it (this can happen, please see 7) for
   more information).
   This results in unprivileged users (no channel access) inadvertently trying to  override the channel settings.  Also, who would be using these commands as in, will they be executed as if the user utilized
   them? If yes, it will give them access denied when they never even did anything themselves. If services legit override this entirely, then any registered user recreating a channel will be able to mess with
   channel settings even when they are not supposed to be able to.

3) Setting +p and +s is not necessary and if you are using UnrealIRCd not even permitted to be set at the same time. Even on IRCd's where it is permitted, it is often that +s hides even more than +p
    (e.g. InspIRCd). (HINT: this does not apply to ALL IRCd's e.g. on Charybdis it does make sense)

4) Your network is not the only one out there, what if someone wants to check out say #Chat because on network X it exists but they had no intention of registering it on your network?

5) It is not possible to mode lock +r on channels as that states "this channel is registered" and is only tampered with when channels are registered or dropped.

6) If you already limit channel access entirely to non registered users additionally invite only shouldn't be necesssary. If you truly do not wish to have non registered users join channels EVER you will
    probably want to set modes-on-join (the exact terminology varies per IRCd conf) to include regonly chmode (often +R), add this to the default mode lock on Anope in chanserv.conf and additionally
    restrict it, by setting require = "R" (for more information on that specific setting please see

7) Channels can be created multiple times. A lot of IRCd's have a persistent/permanent chmode these days (often chmode +P) which will keep the channel open even if the last person leaves. BUT if the
    entire network is restarted (for example, you have just one server) then subsequently all channels will be recreated sooner or later.

Just some food for thought and additional considerations to ponder about.

(Edited to word some things hopefully better, correct some thoughts that got mixed up and to make the text more aesthetically pleasing/less of a pain to read)


Title: Re: Protected channels only
Post by: Sami on December 19, 2019, 07:53:22 AM
Thanks a lot for all this information.

I think I got what you mean and I also realized that I still have to learn about IRC :-)

I will use the modes-on-join and the permanent setting.

Last but not least, my goal was to make then creation of private/secret channels more user friendly, so also non-IRC experienced users can use it (e.g. instead of WhatsApp...).
If there is a possibility to group/combine several commands into one new command, that would already help a lot; I have to check if there is such a module/feature.