| Siec TCP/IP || Otoczenie Sieciowe || Poczta || Usnet || FTP || Konto Shellowe || Czat || IRC || Serwer PROXY |

Otoczenie sieciowe - Sieć SMB

utworzono: 24/06/2002 :: modyfikacja: 09/01/2005
autor: Marcin Moczkowski :: glappo (at) banita (dot) pl

Karteczki WinPopup - Samba/Unix

Na komputerach z systemem Unix (m.in. Linux) do używania systemu karteczek WinPopup musi być zainstalowany pakiet Samba i odpowiednio skonfigurowany. Opcją odpowiedzialna za karteczki jest "message command", definiująca co zrobić z wiadomościami WinPopup.

Programy do Karteczek WinPopup

W systemach Samba/Unix możemy np. wybrać konfiguracje na wzór użytkowników Windows czyli do używania programu do wysyłania i odbierania karteczek dla X-Windows czyli okienek w systemach Unix. Jest to rozwiązanie wygodne do domowego użytku.

KSalup

Ten program do karteczek Winpopup zachwyca bogactwem dostępnych funkcji. KSalup jest dedykowane dla środowiska graficznego KDE w wersjach 2.x i 3.x. Dodatkowo mimo prostoty obsługi program posiada bardzo dobrą dokumentacje dostępną pod adresem http://ksalup.sourceforge.net/doc/en/. Konfiguracja odbierania karteczek poprzez KSalup sprowadza się do dopisania w pliku konfiguracyjnym Samby (z reguły "smb.conf") w sekcji [global], taka linię:

[global]
message command = ksalup --winpopup "%m" "%t" %s; rm %s

Projekt wystartował w roku 2000 i jest dalej rozwijany. Strona domowa programu Ksalup - http://ksalup.sourceforge.net/.

KPopup

Kolejny program do karteczek WinPopup który jest kojarzony ze środowiskiem KDE. Konfiguracja KPopup sprowadza się do dopisania w pliku konfiguracyjnym Samby (z reguły "smb.conf") w sekcji [global], taka linię:

[global]
message command = sh -c 'export DISPLAY=:0; PATH_TO_KPOPUP/kpopup %s %f;' &

Projekt wystartował w roku 2000 i jest dalej rozwijany. Strona domowa programu KPopup - http://www.henschelsoft.de/.

LinPopUp

Żeby karteczki były automatycznie odbierane przez program LinPopUp należy dopisać w pliku konfiguracyjnym Samby (z reguły "smb.conf") w sekcji [global], taka linię:

[global]
message command = /usr/bin/LinPopUp "%f" "%m" %s; rm %s

Oczywiście program LinPopup musi być zainstalowany na podanej ścieżce i być w danym momencie uruchomiony żeby móc odbierać karteczki, również Samba musi też być włączona. sam program wygląda jak na obrazku poniżej.

Żeby wysyłać karteczki poprzez LinPopup nie jest potrzebne uruchamianie pakietu Samby ani dokonywania w jej konfiguracji żadnych wpisów, tyle że wtedy tracimy możliwość odbierania wiadomości.

Projekt wystartował w roku 1998 i nie jest rozwijany od roku 2000 skończywszy na wersji 1.2.0 ale jest dalej najpopularniejsza nakładka graficzną do karteczek Winpopup. Dawna strona domowa programu LinPopUp  - http://linpopup2.sourceforge.net/ oraz obecna http://www.littleigloo.org/.

KDE Popper

Program ten właściwie nazywa się Popper ale ze względu na jego popularyzacje w środowisku KDE uzyskał od niego ten przedrostek.

Konfiguracja sprowadza się praktycznie tylko do ustawień w poniższym okienku. Podajemy tam tylko nazwę pod jaką będą widoczne nasze wiadomości w polu nadawcy oraz ścieżkę do pliku smbclient z pakietu Samba.

Projekt wystartował w roku 2002 i nie jest rozwijany od wtedy skończywszy na wersji 1.0. Strona domowa programu Popper - http://kpopper.sourceforge.net/, natomiast można go pobrać z http://sourceforge.net/projects/kpopper.

Kdepopup  

Kolejny program do karteczek WinPopup który jest kojarzony ze środowiskiem KDE. Konfiguracja Kdepopup sprowadza się do dopisania w pliku konfiguracyjnym Samby (z reguły "smb.conf") w sekcji [global], taka linię:

[global]
message command = sh -c '/usr/local/bin/smbmessage %f %m %t %s' &

gdzie /usr/local/bin/smbmessage jest skryptem powłoki (shella) i może wyglądać np. tak:
#!/bin/sh
export DISPLAY=:0
/usr/local/bin/smbsend -f"$1" -h"$2" -t"$3" -m"$4" >/tmp/smb.err 2>&1

Oczywiście ścieżki do podanych plików muszą się zgadzać i musi być w danym momencie uruchomiony Kdepopup żeby móc odbierać karteczki, również Samba musi też być włączona. sam program wygląda jak na obrazku poniżej.

Projekt wystartował w roku 1999 i nie jest rozwijany od roku 2001 skończywszy na wersji 0.1.9. Strona domowa programu Kdepopup - http://www.franken.de/users/duffy1/rjakob/.

Pozostałe metody odbierania

Można oczywiście zdefiniować w konfiguracji Samby inne zachowania systemu po nadejściu karteczki WinPopup niz. przekazywanie do powyższych programów. Żeby to wykonać należy mieć w pliku konfiguracyjnym Samby (z reguły "smb.conf") w sekcji [global], zdefiniowane odpowiednio "message command". Jest to rozwiązanie o tyle ciekawe, że z taka wiadomością możemy zrobić dosłownie wszystko, poniżej jest parę ciekawych przykładów.

"Przerobienie" wiadomości WinPopup na mail do administratora serwera czyli do root.
message command = /bin/mail -s 'wiadomosc od %f na %m' root < %s; rm %s 

Kolejne rozwiązanie, komunikaty WinPopup wyrzucamy na ósmą konsolę. 
message command= /bin/sh -c 'echo -e ”\a Komunikat od %f:” ; cat %s ; rm %s  /dev/tty8' 

Pokazanie wiadomości poprzez xedit:
message command = csh -c 'xedit %s;rm %s' &

Pokazanie wiadomości dla wszystkich zalogowanych użytkowników:
message command = wall <%s; rm %s

Jak widać przy odbieraniu karteczek Winpopup kluczowe są następujące zmienne pakietu Samba:

  • %s - Nazwa pliku w którym znajduje się komunikat Winpopup, jest to najważniejsza zmienna w tym wypadku
  • %f - użytkownik który przysłał komunikat Winpopup
  • %m - nazwa NetBIOSowa klienta czyli nazwa komputera w tym wypadku z jakiego została przysłana karteczka Winpopup
  • %I - adres IP klienta czyli komputera w tym wypadku z jakiego została przysłana karteczka Winpopup

Wysyłanie karteczek z konsoli

Oczywiście Samba musi być uruchomiona. teraz jak ktoś wyśle nam wiadomość dotrze ona do nas w takiej postaci jaką zdefiniowaliśmy.

smbclient -M

Z konsoli Unix możemy tez wysłać wiadomość WinPopup za pomocą komendy z pakietu Samba "smbclient", najlepiej wykonać to tak:

echo "tekst wiadomosci" | smbclient -U nasza_ksywa -M typek

Można pominąć opcje "-U nasza_ksywa" i wtedy jako nadawca będzie widniała nazwa użytkownika na jakiej jesteśmy zalogowani w systemie. Opcja "-M typek" pozwala nam na wpisane tylko nazwy netbiosowej komputera lub innej zarejestrowanej nazwy do odbierania karteczek WinPopup.

Lista nazw na jakie można wysłać WinPopup

Żeby wyświetlić listę zarejestrowanych nazw dla WinPopup na zdalnym komputerze użyj komendy:
nmblookup -A 192.168.1.X |grep "<03>" (użyj odpowiedniego adresu IP), co da rezultat w stylu:
JAREK <03> - B <ACTIVE>
TATEK <03> - B <ACTIVE>
Owe nazwy adresatów WinPopup są pokazane w pierwszej kolumnie czyli JAREK i TATEK.

Komenda, z pakietu Samba, nmblookup -A Adres_IP wyświetla zarejestrowane wszystkie rodzaje nazw na zdalnych komputerach. Posiadają one swój typ określany odpowiednimi kodami, które są przypisane do odpowiednich rodzajów usług. Dla WinPopup przypisano właśnie kod <03>.

smbpopupip - wysłanie karteczki po adresie IP

Mimo że istnieje opcja w smbclient umożliwiająca wysyłanie  przy użyciu adresu IP (opcja -I), musi ona być równocześnie zaznaczona nazwa netbiosowa (użycie opcji -M). Żeby ominąć ten "problem" i wysyłać karteczki tylko podając adres IP, wystarczy użyć poniższego skryptu smbpopupip:

----------------------------------------------------------------------------------
#!/bin/bash
#### skrypt do wysalania karteczek winpopup przy użyciu adresu IP
#### użycie: smbpopupip <adres_ip> <wiadomość>
#### autor: Marcin Moczkowski glappo (at) banita (dot) pl
ipek=$1
tresc_popup=$2
komp=`nmblookup -A "$ipek" |grep -v "<GROUP>" | awk '($2 == "<00>") {print$1}' | tr -d '\n'`
echo "$tresc_popup" | smbclient -U "$podpis z IP $adresik" -I "$ipek" -M "$komp"

------------------------------------------------------------------------

Po zapisaniu powyższych "robaczków" do pliku smbpopupip, nadaniu praw wykonywania i umieszczeniu np. w katalogu /usr/bin, użycie jest bardzo proste, jakbyś nie dojrzał tego jeszcze w skrypcie:

smbpopupip adres_ip wiadomość

smbpopupwg - karteczki do całej grupy roboczej

Mimo że nie istnieje opcja w smbclient umożliwiająca wysyłanie karteczek winpopup do całej grupy roboczej, można to uczynić za pomocą poniższego skryptu smbpopupg:

----------------------------------------------------------------------------------
#!/bin/bash
#### skrypt do wysalania karteczek winpopup co całej grupy roboczej
#### użycie: smbpopupwg <grupa_robocza> <wiadomość>
#### autor: Marcin Moczkowski glappo (at) banita (dot) pl
workgroup=$1
tresc_popup=$2
HOSTS=`findsmb | awk '/\[$workgroup\]/ {print $2}'`
for host in $HOSTS; do
echo "$tresc_popup" | smbclient -M $host; done

------------------------------------------------------------------------

Po zapisaniu powyższych "robaczków" do pliku smbpopupwg, nadaniu praw wykonywania i umieszczeniu np. w katalogu /usr/bin, użycie jest bardzo proste, jakbyś nie dojrzał tego jeszcze w skrypcie:

smbpopupwg grupa_robocza wiadomość


Drukuj Dokument