lut 18

Jak uruchomić prosty publicznie dostępny kiosk internetowy?
To proste, potrzebujemy przeglądarki internetowej i już. Ale jest pewien problem: zwykle przeglądarka udostępnia użytkownikowi wszystkie wbudowane opcje (pobieranie plików itp), użytkownik może też zamknąć przeglądarkę (lub zminimalizować) i buszować po systemie. A to może spowodować, że kolejny użytkownik, być może, nie będzie umiał skorzystać z takiego kiosku.

Co zatem zrobić?
Użyć Opery. Opera jako jedyna znana mi przeglądarka ma wbudowany tryb pracy kiosk. Przed instalacją warto jednak się zastanowić jaki wybrać system operacyjny. Pierwsze, co przychodzi do głowy to Windows :D . Instalacja szybka, łatwa i przyjemna. Jest jednak pewien problem: przeglądarka (ani żadna inna aplikacja) nie jest w stanie przechwycić i wyłączyć kombinacji CTRL+ALT+DEL. Trzeba by było podmienić windowsowy podsystem autentykacji GINA. Da się to zrobić, ale wymaga trochę pracy. Dodatkowo, Windows jest trochę za ciężki dla starszego komputera. No i obciach w razie restartu – widać, że pod spodem uruchamia się Windows.

Alternatywa?
Oczywiście, jedna z odmian linuxa. Ja wybrałem ubuntu z uwagi na popularność i dość dobre mechanizmy wykrywania sprzętu. Dodatkowo, postanowiłem zacząć od instalacji minimalnej, aby jak najbardziej odchudzić system. Dzięki temu taki kiosk można uruchomić na czymkolwiek.

Instalacja podstawowa
Pobieramy i wypalamy Ubuntu minimal CD. Instalacja potrwa małą chwilę, ponieważ pakiety są pobierane z sieci.
Po instalacji warto zainstalować ssh oraz acpi.

aptitude install ssh acpid

W pliku /boot/grub/grub.cfg dodajemy jeszcze opcję acpi=force do parametrów jądra. Pozwoli nam to obsłużyć „miękkie” wyłączanie systemu przyciskiem zasilania.

Następnie instalujemy Xsy.

aptitude install xserver-xorg xinit

Trzeba je skonfigurować. Najprostsza metoda, to uruchomienie Knoppixa (wersja 5.0 i wyższe) i skopiowanie pliku konfiguracji /etc/X11/xorg.conf na dysk. Knoppix doskonale wykrywa i konfiguruje większość urządzeń.
Można też użyć polecenia:

Xorg -configure

Następnie sprawdzamy, czy Xsy uruchamiają się poprawnie:

Xorg -config xorg.conf.new -retro

Utworzy ono plik xorg.conf.new w katalogu domowym użytkownika. należy go skopiować na właściwe miejsce:

cp ~/xorg.conf.new /etc/X11/xorg.conf

Teraz instalujemy operę (w tym przypadku jest to opera_10.10.4742):

echo „deb http://deb.opera.com/opera stable non-free” >> /etc/apt/sources.list
wget -O – http://deb.opera.com/archive.key | sudo apt-key add -
aptitude update
aptitude install opera

Jeśli chcemy pluginy do javy, pfd i flash, trzeba je doinstalować:

Java:

aptitude install sun-java6-bin sun-java6-jre sun-java6-plugin

Adobe Reader

wget http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.3/enu/AdbeRdr9.3-1_i386linux_enu.deb
dpkg -i AdbeRdr9.3-1_i386linux_enu.deb

Adobe Flash

wget http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_10_linux.deb
dpkg -i install_flash_player_10_linux.deb

Teraz tworzymy użytkownika, który będzie uruchamiał całość:

useradd internet …

passwd internet

Logujemy się jako użytkownik internet i tworzymy plik ~/.xinitrc:

echo „opera”  > /home/internet/.xinitrc

uruchamiamy Xsy:

startx

Po uruchomieniu Xsów powinna uruchomić się opera (na razie w zwykłym trybie). jeśłi obraz wygląda kiepsko wracamy do konfiguracji Xsów. Teraz czas sprawdzić czy opera widzi pluginy:

Narzędzia -> preferencje -> zaawansowane -> zawartość -> opcje wtyczek

Jeśli opera nie widzi pluginów, zaglądamy do sekcji „Znane problemy”.

Możemy teraz dokonfigurować Operę do naszych potrzeb: ustawiamy stronę domową oraz filtrowanie adresów:

opera:config – network – URL filter file – /home/internet/.opera/urlfilter.ini

Szczegóły można znaleźć na http://www.opera.com/support/mastering/kiosk/#url-filter

Oto przykładowa zawartość pliku /home/internet/.opera/urlfilter.ini

[prefs]
prioritize excludelist=0

[include]

http://???.opera.com/*

[exclude]
*

Końcówka – uszczelnianie i automatyzacja

Uszczelniamy konfigurację xorg dodając na końcu (dzięki temu nie da się np. zabić xserwera oraz przełączyć na konsolę tekstową):

Section „ServerFlags”
Option „DontZap” „true”
Option „DontVTSwitch” „true”
Option „DontZoom” „true”
EndSection

rekonfigurujemy uprawnienia do uruchamiania Xserwera (pozwalamy wszystkim):

dpkg-reconfigure x11-common

Modyfikujemy .xinitrc do postaci:

opera -kioskmode -kioskresetstation -nocontextmenu -nodownload -noexit -nokeys -nomail -nomaillinks -nomenu -noprint -nosave -resetonexit  http://text.pl/

Szczegóły ustawień można znaleźć na http://www.opera.com/support/mastering/kiosk/

Automatyzacja wszystkiego:

w /etc/init/tty1.conf zmieniamy ostatnią linię do postaci:

exec /bin/login -f bakai < /dev/tty1 > /dev/tty1 2>&1

oraz w .bashrc dodajemy na koncu:

if [ $(tty) == "/dev/tty1" ]; then
startx > /dev/null
fi

Znane problemy:

W przypadku, gdy opera nie wykrywa poprawnie zainstalowanych modułów może pomóc:

instalacja brakującej biblioteki

aptitude install libnss3-1d

i/lub przekopiowanie modułu

cp /usr/lib/mozilla/plugins/nppdf.so /usr/lib/opera/plugins/nppdf.so

Efekty:

Czas uruchamiania od naciśnięcia włącznika do załadowania strony <30 sek. na komputerze celeron 1,7GHz 128MB.

Czas zamknięcia do wyłączenia zasilania <5 sek.

paź 25

Php w debianie używa biblioteki współdzielonej gd. Niestety, w takiej sytuacji część funkcji jest niedostępna – m.in. właśnie imagerotate().

Zobacz: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=298061

W takiej sytuacji można skompilować sobie całe php ręcznie, albo zbudować nowe paczki i zainstalować je metodą „debianową”. Aby to zrobić trzeba wykonać następującą sekwencję:

apt-get source libapache2-mod-php5
apt-get build-dep libapache2-mod-php5
cd php5-5.2.0/
sed -i 's/-with-gd=share,\/usr/-with-gd/' debian/rules
debian/rules binary
dpkg -i libapache2-mod-php5*.deb
paź 1

Załączony skrypt nie jest mojego autorstwa, znalazłem go kiedyś w sieci. Skrypt został napisany w perlu i wymaga Net::FTP.

#!/usr/bin/perl

use strict;
use Net::FTP;

my $host        = "ftp.hostname.com";
my $dir         = "/";
my $user        = "foo";
my $passwd      = "bar";
my $interval    = 3600*24*62; # 62 day
my $passive     = 1; # my FTP server only works in PASV mode
my $DEBUG       = 0;

my $ftp = Net::FTP->new($host,
 Debug => $DEBUG,
 Passive => $passive)
 or die "Can't open $host\n";
$ftp->login($user, $passwd) or die "Can't log in as $user\n";
$ftp->cwd($dir) or die "Can't chdir to $dir\n";
my @files = $ftp->ls("*.tar.gz");

foreach my $file (@files) {
 my $file_mdtm = $ftp->mdtm($file) or die "Can't find $file in $dir\n";
 if (time - $file_mdtm >= $interval) {
 print "File $file is older than $interval secs: deleted\n";
 $ftp->delete($file) unless $DEBUG;
 }
}
sty 17

Pod koniec roku producent ssl-explorera, firma 3SP, została kupiona przez Barracuda Networks. Mniej więcej w tym czasie znikła wersja Community (kod został zamknięty). Razem z wersją społecznościową znikła strona, forum i wszystko co z tym związane.

Na szczęście grupa zapaleńców na podstawie ostatniej otwartej wersji dokonała forka i tak powstał ADITO. Z kodu usunięto wszystko co nie jest wolne i wydano już pierwszą wersję. W najbliższym czasie postaram się bliże zapoznać z tym softem http://sourceforge.net/projects/adito.

gru 19
Niepoprawne kodowanie polskich znaków.
Aby uzyskać poprawne kodowanie w panelu ISPConfig należy wy edytować /home/admispconfig/ispconfig/lib/config.inc.php i odnaleźć w nim wpis

<$go_info["theme"]["charset"] = "iso-8859-1"; ;/>

i zamienić go na

<$go_info["theme"]["charset"] = "iso-8859-2"; ;/>
paź 2

Ponieważ nie ma (nie udało mi się znaleźć) polskiej wersji językowej tego fajnego programu, postanowiłem sam wziąć się za tłumaczenie. Na pierwszy ogień poszedł interfejs użytkownika końcowego……

Mam już przetłumaczone (lepiej lub gorzej) kilkadziesiąt zwrotów związanych z logowaniem, atrybutami, profilami, miejscami sieciowymi…