Kanały

Mode

Służy do zmiany parametrów kanału - ochrony, tematu, hasła oraz do nadawania/zabierania uprawnień użytkownikom.

Składnia polecenia wygląda następująco: /MODE #kanał [+/-]tryb, gdzie tryb to litera konkretnego ustawienia, a plus lub minus określa, czy ustawienie ma być włączone, czy wyłączone. W tym przypadku celem jest nasz kanał.

Lista możliwych trybów kanału:

znak opis
nick Głos - użytkownik z +v może mówić, gdy na kanale ustawiony jest tryb +m
nick Halfop - operator z ograniczonymi uprawnieniami
nick Operator kanału
nick Kick-protect - użytkownik z tym trybem nie może zostać kopnięty
nick Owner - właściciel kanału, posiada najwyższe uprawnienia
nick!ident@host Banuje użytkownika. Nasza sieć pozwala na dodatkowe typy banów. Aby dowiedzieć się więcej, przejdź do sekcji zaawansowane typy banów.
nick!ident@host Użytkownik pasujący do tej maski nie podlega banom
nick!ident@host Użytkownik pasujący do tej maski może wejść na kanał bez /invite, gdy polecenie to normalnie jest wymagane
Blokuje kolory mIRC na kanale (nie pozwala na wysłanie wiadomości, która je zawiera)
ustawienia Wbudowane w serwer zabezpieczenia przed floodem. Przejdź do sekcji ochrona przed floodem aby dowiedzieć się więcej.
i Użytkownik musi być zaproszony aby móc dołączyć
klucz Użytkownicy muszą podać hasło aby wejść na kanał
limit Limit osób, które mogą naraz przebywać na kanale
m Moderowany kanał - Tylko +vhoaq mogą mówić
n Ludzie spoza kanału nie mogą na niego pisać (domyślnie ustawione)
p Kanał prywatny (nie widać jego nazwy w /list)
r Zarejestrowany kanał (tylko serwisy mogą ustawić ten tryb)
s Ukryty kanał
t Topiclock - tylko +hoaq mogą zmieniać temat (domyślnie ustawione)
z Tylko użytkownicy korzystający z bezpiecznego połączenia SSL mogą wejść na kanał
B Wyłącza blokadę masowych przywołań nicka na kanale (domyślnie jest włączona)
C Nie wolno wysyłać CTCP na kanał
D Wiadomość JOIN pokaże się dopiero, gdy wchodzący coś napisze
G Filtruje wulgaryzmy - zamienia je na <censored> (niezalecane ze względu na niekompletną listę wulgaryzmów)
wiadomości:minuty Włącza obsługę historii na kanale. Liczba "wiadomości" oznacza ilość wiadomości do zapamiętania, a "minuty" – maskymalny czas ich przechowywania.
M Użytkownik musi mieć zarejestrowany nick lub mieć co najmniej +v aby móc pisać
N Nie wolno zmieniać nicka przebywając na kanale z tym trybem
K /KNOCK zablokowane
#chan2 Jeśli użytkownik nie może wejść na dany kanał, zostanie przekierowany do tego podanego.
Q Blokuje KICK (tylko serwisy mogą kopać)
P Kanał "wieczny" – nie znika, gdy wszyscy wyjdą (tylko operatorzy mogą ustawić ten tryb)
R Tylko zarejestrowani użytkownicy mogą dołączyć do kanału
S Zmienia kolory mIRC na normalny tekst
T NOTICE zabroniony na kanale
V /INVITE zabroniony
Z Wszyscy obecni korzystają z bezpiecznego połączenia SSL (ustawiany automatycznie, i tylko, gdy jest również ustawiony +z)

Wielkość liter ma znaczenie.

Kick

Zarówno syntax, jak i przeznaczenie tej komendy jest dość proste. /kick #kanał nick powód (albo w niektórych klientach, po prostu /kick nick) zwyczajnie wyrzuca użytkownika z kanału. Z wiadomych przyczyn, aby użyć tej komendy musimy posiadać na kanale przynajmniej uprawnienia half-opa.

Topic

Polecenie TOPIC zmienia temat na kanale na ten podany w argumencie. Składnia jest wyjątkowo prosta: /topic #kanał nowytemat (albo po prostu /topic nowytemat).

Banowanie

Ten fragment dokumentu nie będzie miał charakteru dokumentacji – będzie poradnikiem, który wyjaśnia jak powinno się banować użytkowników na naszym kanale.

Aby skutecznie banować powinniśmy rozróżniać takie pojęcia jak nick, ident i host. Wyjaśnijmy je na przykładzie. Użytkownicy "futrzak" i "futrzakowa" wchodzą na kanał #main:

*** futrzak [s@tty1.tk] has joined #main
*** futrzakowa [~admin@127.0.0.1] has joined #main

W powyższym komunikacie otrzymujemy informacje o nicku użytkownika który wszedł, jego idencie i hoście.

  • nick to "ksywka" którą przybrał użytkownik
  • ident to nazwa użytkownika, którą komputer z którego użytkownik się połączył wysłał do serwera
  • host to adres z którego łączy się użytkownik.

Ident i host będą kluczowe przy banowaniu. Zacznijmy od identa: pierwszy użytkownik ma identa "s", a drugi "~admin". znak tyldy (~) oznacza, że na komputerze nie działa usługa identd, specjalny program służący do identyfikacji użytkowników. W wielu przypadkach użytkownicy nie mogą zmieniać swojego identu, jeśli mają zainstalowany identd. Szczególnie często spotykamy usługę identd na serwerach szelowych, z których łączy się więcej użytkowników - dzięki temu możemy zbanować jednego użytkownika używając ident (i mieć pewność że ten konkretny już do nas nie wejdzie), a nie wszystkich korzystających z takiego konta.

Host z kolei jest albo adresem IP użytkownika, albo domeną revDNS dla adresu IP z którego wszedł ten użytkownik. Ban na adres IP zadziała na revDNSa.

Host domyślnie jest ukryty, to znaczy, że jeżeli adres użytkownika nie ma revDNSa, to adres IP (na przykład 1.2.3.4) zostanie zastąpiony czymś w postaci 8192116F.AC91209H.213D01A1.IP. Jeśli revDNS jest, to jego początek zostanie zastąpiony zmienionym fragmentem zaczynającym się od tekstu "ukryty-". Z takimi hostami postępujemy identycznie, jak z tymi, które nie są ukryte i mają revDNS. Jedyna różnica jest taka, że nie możemy sprawdzić, jaki adres IP odpowiada danemu ukrytemu hostowi.

Bany ustawia się za pomocą polecenia /MODE #kanał +b nick!ident@host, a gwiazdka (*) oznacza "dowolny ciąg znaków", zaś znak zapytania (?) dowolny pojedyńczy znak.

Mając tę wiedzę, zbanujmy obu użytkowników. Widzimy, że użytkownik "futrzak" nie ma tyldy w idencie, więc aby go najlepiej zbanować dajmy mu bana w postaci *!ident@host, czyli:

/MODE #main +b *!s@tty1.tk

Drugi użytkownik ma już tylde, więc może zmieniać ident. Najlepiej będzie zbanować go korzystając z adresu IP:

/MODE #main +b *!*@127.0.0.1

Posiadając taką wiedzę jesteśmy w stanie robić różne triki z banami, np. sprawić, żeby na kanał mogli wejść tylko ludzie posiadający działającą usługę identd:

/MODE #main +b *!~*@*

Czy zabronić wejścia użytkownikom którzy mają w swoim nicku słowo "ptak":

/MODE #main +b *ptak*!*@*

Używając gwiazdek jako "dowolnego ciągu znaków" możemy bez problemu banować całe zakresy adresów IP:

*** nick1 [~2132@i.have.some.cool.host.example.com] has joined #main
*** nick2 [~dsax@another.example.host.pirc.pl] has joined #main
*** nick3 [~njm9@this.is.my.host] has joined #main

W tym przykładzie widzimy że trzech użytkowników masowo dołączyło do naszego kanału. Chcemy temu przeciwdziałać, jednak nie wiemy jak - użytkownik nie ma identd, oraz wchodzi z różnych adresów. Jednakże sprawdźmy te adresy (np. korzystając z UNIXowego programu host):

$ host i.have.some.cool.host.example.com; host another.example.host.pirc.pl; host this.is.my.host

i.have.some.cool.host.example.com has address 2001:41dj:1j:f0cj::1
another.example.host.pirc.pl has address 2001:41dj:1j:f0cj::2
this.is.my.host has address 2001:41dj:1j:f0cj::3

Jak widzimy w tym przykładzie, adres IP dla tych hostów jest dość schematyczny. Nie zmienia się pierwsza część, czyli 2001:41dj:1j:f0cj::. Wiele dostawców adresów IPv6 daje całe podsieci, tak jak w tym przypadku. Aby pozbyć się delikwentów użyjmy następującego bana:

/MODE #main +b *!*@2001:41dj:1j:f0cj::*

Oczywiście te adresy są tylko przykładowe - dlatego są nieprawidłowe.

Powyższy sposób na sprawdzenie adresów IP nie zadziała niestety dla hostów ukrytych. W razie potrzeby możesz poprosić o pomoc na #help.

Bany czasowe

Bany ustawione za pomocą polecenia MODE pozostają na kanale dopóki on istnieje, bądź dopóki nie zostaną zdjęte przez operatora kanału. Istnieje jednak możliwość ustawiania banów usuwanych automatycznie. Pozwala na to opcja ~t:liczba: przed maską bana (liczba oznacza czas w minutach). Przykład bana zdejmowanego samoczynnie po 1 dobie: /mode #kanał +b ~t:1440:*!*@2001:41dj:1j:f0cj::*. Czasowe bany można ustawiać także za pomocą usługi ChanServ.

Uprawnienia

Hierarchia użytkowników na kanale jest ustalona przez założenia techniczne używanego IRCd i wygląda następująco (ułożenie od największego do najmniejszego znaczenia):

nazwa tryb symbol
owner (właściciel kanału) +q ~
protect (administrator kanału) +a &
op (operator kanału) +o @
halfop (półoperator) +h %
voice +v +
zwykły użytkownik brak brak

Voice(+) może pisać na kanale, kiedy kanał ma ustawiony tryb +m. Halfop(%) może wyrzucać z kanału, ustawiać tryby i dawać innym voice. Op(@) może to co halfop, oprócz tego ma możliwość rozdawania halfopów i innych opów. Protect(&) może tyle co op, ale nie może zostać wykopany przez nikogo poza ownerem(~) (który ma pełną władzę na kanale).

Niektóre programy (na przykład ChatZilla albo XChat) zastępują znaki ~&@%+ na przykład kółkami o różnych kolorach – ale każdy program ma to zrealizowane inaczej, więc nie będę tutaj wymieniać znaczenia kolorów.

Jeśli jesteś operatorem kanału, i ustawisz któreś z tych uprawnień używając komendy MODE, pamiętaj, że uprawnienia te pozostaną ważne do momentu wyjścia użytkownika z kanału. Po jego ponownym wejściu musisz je ustawić znowu. Zajrzyj tutaj, jeśli interesuje Ciebie automatyczne przydzielanie uprawnień użytkownikom.

Zaawansowane typy banów

Na naszej sieci, prócz zwyczajnych banów nick!user@host dostępne są również rozszerzone metody banicji, rozszerzające zwykłe bany o dodatkowe możliwości. Tego typu bany zakładamy tak, jak zwykłe bany, z tą różnicą że podajemy prefix, np. /mode #kanał +b ~q:nick!user@host. Zaawansowane bany dzielimy na trzy grupy:

Grupa pierwsza
prefiks opis
~q Wygłuszacz - użytkownik pasujący do maski podanej po prefiksie jest w stanie dołączyć na kanał, jednak nie będzie mógł nic napisać dopóki nie dostanie przynajmniej +v.
~n Nickchange - użytkownik pasujący do tej maski nie może zmienić nicku przebywając na kanale
~j Zabrania użytkownikowi wejścia na kanał – jednak gdy już wejdzie, może pisać
~p Wiadomość wysłana przy wyjściu z kanału (PART lub QUIT) przez użytkownika pasującego do tej maski nie zostanie wyświetlona.
~m Pozwala wybranym użytkownikom na omijanie ograniczeń na kanale wprowadzonych poprzez ustawienie jednej z flag +nmMScT. Składnia: /mode #kanał +e ~m:typ:maska. Dostępne typy to:
Typ Omija flagi Komentarz
external +n Użytkownik może pisać na kanale, nie wchodząc nań
moderated +mM Użytkownik może pisać na kanale moderowanym, nie mając prawa głosu (+v)
color +Sc Użytkownik (na przykład bot) może pisać na kolorowo, mimo, że jest to na danym kanale zablokowane
notice +T Użytkownik może wysyłać na kanał wiadomości /NOTICE mimo blokady
~f Przekierowuje podanego użytkownika na wybrany kanał. Przykład użycia: /mode #kanał +b ~f:#kanał2:nick!*@*

Grupa druga
~r Ten prefiks banuje realname podanego użytkownika. Podkreślenie ('_') będzie tu oznaczało zarówno podkreślenie, jak i białą spację (' '). Przykładowy ban /mode #kanał +b ~r:*Stupid_bot_script* będzie więc pasować zarówno do "Stupid_bot_script" jak i do "Stupid bot script v1.4". Przydatne także, gdy użytkownik zmienia nicki i adresy IP, a jego "realname" zostaje zawsze taki sam.
~c Użytkownicy przebywający na kanałach podanych po tym prefiksie nie mogą dołączyć na ten kanał. Możemy również podać prefiks przed nazwą kanału (+/%/@/&/~) aby określić, jakie uprawnienia użytkownik musi mieć na 'banowanym kanale', aby nie móc wejść na kanał na którym banujemy.
Przykłady:
/mode #kanał +b ~c:#main2
/mode #kanał +b ~c:@#main3
~a Użytkownik pasuje do tego bana tylko, gdy jest zidentyfikowany do podanego konta (głównego nicka w grupie). Dzięki temu nie trzeba dodawać oddzielnych banów/wyjątków dla każdego z nicków w grupie. Przydatne dla trybów +e i +I – używając takich wyjątków możemy w łatwy sposób stworzyć kanał tylko na zaproszenie, na który wybrani użytkownicy mogą wejść bez problemu.
~S Tutaj możemy podać tak zwany "odcisk palca" certyfikatu klienta (jeśli użytkownik taki posiada, to można go zobaczyć za pomocą komendy /WHOIS). Przydatne dla trybów +e i +I.
~T Ten ban jest szczególny pod tym względem, że nie uniemożliwia nikomu wejścia na kanał ani nie powoduje jego wyrzucenia. Zamiast tego, pozwala na zablokowanie wysyłania na kanał określonych słów. Przykłady:
/mode #kanał +b ~T:block:hej – zablokuje tylko wiadomości o treści "hej".
/mode #kanał +b ~T:block:*cytryna_* – zablokuje wiadomości, które zawierają w sobie tekst "cytryna_" lub "cytryna " (_ pasuje do podkreślnika, jak i do spacji).
/mode #kanał +b ~T:censor:jutro – zastąpi wszystkie wystąpienia tekstu "jutro" we wiadomościach na "<censored>".

Zaawansowane bany można łączyć ze sobą, zachowując kolejność grup - bany z pierwszej łączymy z drugą grupą, nigdy na odwrót. Przykładowo, możemy stworzyć bana ~q:~c:#lamers wygłuszy wszystkich użytkowników przebywających jednocześnie na kanale #lamers. Rozszerzenia z grupy drugiej można również stosować w INVEXach (wyjątkach dla invite-only, czyli trybu +I) oraz wyjątkach banów (czyli +e – pasujący do danego wyjątku nie są obejmowani przez jakiekolwiek bany +b).


Grupa specjalna

Istnieją również dwa specjalne typy banów, którymi można poprzedzić każdy z podanych powyżej.

~t Ten prefiks powoduje zdjęcie bana po określonym czasie (podanym w minutach). Przykład: /mode #kanał +b ~t:1440:spamer!*@* – zbanuje osobę o nicku "spamer". Ban zdejmie się automatycznie po jednej dobie (1440 minut).
~I Spowoduje, że ban zadziała tylko wtedy, gdy pasujący do niego użytkownik nie jest zalogowany do serwisów. Przykłady:
/mode #kanał +b ~I:*!*@*.orange.pl – zbanuje wszystkich niezalogowanych użytkowników łączących się z domeny "orange.pl".
/mode #kanał +b ~t:10:~I:~c:#kanał2 – na 10 minut zbanuje wszystkich niezalogowanych użytkowników, którzy są na kanale "#kanał2".
Ochrona przed floodem

Kolejną ciekawostką u nas jest wbudowana w serwer ochrona przed floodem. Nie trzeba stawiać własnych botów, aby zabezpieczyć swój kanał przed natłokiem niechcianych wiadomości, lub masowym dołączaniem i opuszczaniem kanału, a nawet wiadomościami CTCP, czy KNOCK.

Składnia jest następująca: /mode #kanał +f [ilośćtyp{#akcja}{,...}]:sekundy

ilość określa ile razy określony typ floodu musi zajść, aby podjęta została dana akcja. Poniżej prezentujemy listę wszystkich możliwych typów floodu, domyślne akcje które są podejmowane w razie ich wykrycie i inne możliwości reakcji na flood, dla danego typu:

Typ Nazwa Domyślna akcja Alternatywne akcje
c CTCP +C m, M
j Join +i R
k Knock +K brak
m Wiadomości +m M, d
n Zmiana nicku +N brak
t Wiadomości kick b, d
r Powtórzenia kick d, b

Akcja "b" oznacza zbanowanie użytkownika, "d" zablokowanie wiadomości, a pozostałe ustawiają daną flagę na kanale.

Różnica między "m" a "t" polega na tym, że "m" liczone dla całego kanału, a "t" jest zliczane osobno dla każdego użytkownika.

Jeśli wybierzesz ręcznie akcję dla danego typu, możesz również określić czas w sekundach po którym dana akcja zostanie cofnięta.

Kompleksowy przykład do ustawienia na własnym kanale:
/mode #kanał +f [4j#R3,4k#K3,6m#M1,3n#N3,6t]:6


Jeżeli nie wiesz, jak ustawić któryś z powyższych trybów lub nie masz pewności, jak zadziała, nie bój się zapytać na kanale #help