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 |
v nick | Głos - użytkownik z +v może mówić, gdy na kanale ustawiony jest tryb +m |
h nick | Halfop - operator z ograniczonymi uprawnieniami |
o nick | Operator kanału |
a nick | Kick-protect - użytkownik z tym trybem nie może zostać kopnięty |
q nick | Owner - właściciel kanału, posiada najwyższe uprawnienia |
b 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. |
e nick!ident@host | Użytkownik pasujący do tej maski nie podlega banom |
I nick!ident@host | Użytkownik pasujący do tej maski może wejść na kanał bez /invite, gdy polecenie to normalnie jest wymagane |
c | Blokuje kolory mIRC na kanale (nie pozwala na wysłanie wiadomości, która je zawiera) |
f 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ć |
k klucz | Użytkownicy muszą podać hasło aby wejść na kanał |
l 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) |
H 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 |
L #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:
| |||||||||||||||
~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