Download: KnowGmail
Transkrypt
Download: KnowGmail
GmailFS KNOW HOW GmailFS: konto pocztowe jako system plików WIĘCEJ NIŻ POCZTA Czemu konto pocztowe o pojemności 1 gigabajta miałoby się marnować? Program GmailFS pozwala używać konta Gmail jako systemu plików. FABRIZIO CIACCHI G mail, należący do Google system poczty elektronicznej dostępnej przez WWW, stworzył zupełnie nową wizję poczty internetowej. Konto pocztowe Gmail ma pojemność aż 1 GB. Jak mówią jego twórcy – konto Gmail oznacza, że nigdy nie pojawi się konieczność kasowania jakichkolwiek wiadomości. Rzecz jasna, użytkownikom Linuksa 1 GB wolnego miejsca otwiera jeszcze więcej nowych możliwości. Niedługo po uruchomieniu tej usługi społeczność linuksowa znalazła dla tego gigabajta zupełnie nowe zastosowanie, całkowicie różniące się od pierwotnych założeń Google. GmailFS, stworzony przez Richarda Jonesa [2], wykorzystuje tę przestrzeń dyskową jako zdalny, montowalny linuksowy system plików. Czym jest GmailFS? Z punktu widzenia użytkownika GmailFS wygląda jak zwykły system plików. Jak mówi jego wania, przeznaczony dla użytkowników chcąautor – „GmailFS obsługuje większość operacych uniknąć komplikacji związanych z twocji na plikach: zapisywanie, odczytywanie, rzeniem własnego, dostępnego przez Internet otwieranie, zamykanie, odczytywanie statusu serwera plików. GmailFS pozwala uzyskać (stat), tworzenie i usuwanie dowiązań symbodostęp do centralnie przechowywanych plilicznych i twardych (symlink, link i unlink), ków z różnych komputerów, znajdujących się obcinanie (truncate) i zmiana nazwy”. Korzyw różnych miejscach – nie musisz przejmostając z systemu plików, można używać zwykłych narzędzi działających w wierszu poleceń, takich jak cp, mv, rm i grep. W rzeczywistości jednak GmailFS zapisuje dane w formie wiadomości e-mail na serwerze Gmail (szczegółowe informacje o tym, raczej niezwykłym, sposobie przechowywania plików znajdziecie w ramce „Jak działa GmailFS”). GmailFS to gotowy, zdalny system przechowyRysunek 1: Plik /etc/fstab i wynik polecenia df. WWW.LINUX-MAGAZINE.PL NUMER 17 CZERWIEC 2005 55 KNOW HOW GmailFS wać się „serwerową” stroną połączenia. Możesz na przykład wykorzystać konto Gmail, aby przenieść pliki z domu do pracy, albo żeby mieć dostęp do jakiegoś programu z dowolnego miejsca. GmailFS jest także szybkim i prostym w obsłudze narzędziem do tworzenia nieformalnych kopii zapasowych plików. Przygotowanie systemu Jak wiemy z ramki „Jak działa GmailFS”, system ten opiera się na dwóch kluczowych elementach. Zanim zaczniesz z niego korzystać, musisz więc zainstalować: ■ FUSE – narzędzie umożliwiające tworzenie linuksowych systemów plików w przestrzeni użytkownika. ■ libgmail – bibliotekę języka Python, zapewniająca dostęp do konta Gmail. GmailFS napisany został w Pythonie, potrzebował więc będziesz także interpretera i plików nagłówkowych języka Python 2.3 (nie 2.4). Wiele dystrybucji Linuksa zawiera Pythona; jeśli twoja do nich nie należy, krótkie wskazówki znajdziesz w Ramce „Instalowanie języka Python”. Pobierz FUSE 1.3 ze strony projektu [7], rozpakuj pliki i zainstaluj pakiet. Uwaga: aby pomyślnie zakończyć tę operację, musisz mieć jądro skompilowane ze zródeł - FUSE zainstaluje dzięki temu moduł odpowiedni dla danego jądra. Wpisz su, podaj hasło roota, a następnie wpisz następujące polecenia: Jak działa GmailFS GmailFS to aplikacja napisana w języku Python, oparta na dwóch istotnych elementach. Pierwszym z nich jest FUSE [3], działające w przestrzeni jądra narzędzie, umożliwiające zakładanie systemów plików w przestrzeni użytkownika. Drugim niezbędnym składnikiem jest libgmail [4], biblioteka Pythona, umożliwiająca dostęp do konta Gmail z poziomu aplikacji. GmailFS to połączenie tych dwóch komponentów. Dzięki FUSE GmailFS może działać w przestrzeni użytkownika, co znacznie upraszcza kwestie związane z projektem i implementacją; libgmail daje programowi niewidoczny dla użytkownika lub programisty dostęp do konta Gmail, umożliwiając zapisywanie i pobieranie danych. Użytkownik widzi więc GmailFS jako normalny system plików, Gmail zaś - jako zbiór wiadomości e-mail. Metadane związane z plikiem przechowywane są w polu tematu wiadomości, a dane pliku przechowywane są w formie załącznika. Ponieważ Gmail ogranicza maksymalny rozmiar załączników, duże pliki trzeba przechowywać w kilku częściach. 56 NUMER 17 CZERWIEC 2005 # tar -zxvf §§ fuse-1.3.tar.gz # cd fuse-1.3/ # sh ./configure # make # make install Kolejnym krokiem jest instalacja powiązań (bindings) między Pythonem i FUSE. Umożliwiają one używanie FUSE z poziomu kodu w Pythonie. Można je pobrać z repozytorium CVS FUSE [8] albo ze strony autora programu GmailFS, Richarda Jonesa [9]. Po ściągnięciu odpowiedniego pliku wpisz su, hasło roota i następujące polecenia: # # # # tar -zxvf fuse-python.tar.gz cd fuse-python/ python setup.py build python setup.py install Najtrudniejsza część już za nami. Teraz musimy ściągnąć bibliotekę libgmail [4] – potrzebne nam będą pliki constant.py i libgmail.py. Można ściągnąć je z CVS za pomocą przeglądarki [10]. Po pobraniu najnowszych wersji plików wpisz odpowiednie polecenia (korzystając z konta roota), aby przenieść pliki libgmail do miejsca, z którego Python będzie w stanie je odczytać: # cd libgmailCVS/ # mv libgmail.py constants.py §§ /usr/local/lib/§§ python2.3/site-packages/ Instalacja GmailFS Jesteśmy już gotowi do zainstalowania programu GmailFS. Otwórz przeglądarkę, wejdź na stronę Richarda Jonesa [2] i ściągnij najnowsze wydanie GmailFS [11]. Rozpakuj pliki i skopiuj je do odpowiednich katalogów. Wpisz su oraz hasło roota, a następnie: # # # # # tar -zxvf gmailfs-0.3.tar.gz cd gmailfs-0.3/ mv gmailfs.py /usr/local/lib mv mount.gmailfs /sbin mv gmailfs.conf /etc Kolejny krok to edycja pliku /etc/gmailfs.conf. Można w nim ustawić takie parametry, jak nazwa i hasło użytkownika konta Gmail oraz nazwa systemu plików. Ten ostatni parametr jest bardzo ważny – GmailFS będzie za jego pomocą przyporządkowywał wia- WWW.LINUX-MAGAZINE.PL Instalowanie języka Python 2.3 Za instalację pakietów języka Python 2.3 odpowiadają następujące polecenia: W Debianie: # apt-get install python2.3U python2.3-dev W Slackware: # swaret -install python-2.3.U 4-i486-1 W Gentoo: v# emerge python W Mandrake: # urpmi libpython2.3 libpythonU 2.3-devel W systemach Fedora i Redhat (z Apt4Rpm [5]): # apt-get install pythonU -devel-2.3.4-13.1 (dostępne są także pakiety RPM i Yum dla Redhata) Jeżeli chcesz zainstalować język bezpośrednio ze zródeł, musisz najpierw ściągnąć plik z kodem zródłowym Pythona 2.3.5 [6]. Za przygotowanie składników programistycznych do skompilowania odpowiadają poniższe polecenia. Wpisz su oraz hasło roota, a następnie: # # # # tar -zxvf Python-2.3.5.tgz cd Python-2.3.5/ ./configure make # make install domości na serwerze do danego systemu plików. Wybierz nazwę, którą trudno będzie odgadnąć (w naszym przykładzie używamy domyślnej nazwy – linux_fs_3). Ponieważ GmailFS grupuje wiadomości zgodnie z nazwą systemu plików, w ramach jednego konta pocztowego można utworzyć kilka systemów. Aby podmontować GmailFS, należy użyć następujących poleceń: # mkdir GmailMount # mount -t gmailfs §§ /usr/local/bin/gmailfs.py §§ GmailMount/ -o username= §§ śgmailuser];password= §§ śgmailpass], fsname=śfs_name] (uwaga: jeżeli odpowiednie parametry zostały już zdefiniowane w pliku /etc/gmailfs.conf, można pominąć instrukcje zapisane wytłuszczonym drukiem) GmailFS KNOW HOW Kompilacja jądra Aby skompilować i zainstalować jądro ze zródeł, musisz pobrać najnowszą stabilną wersję jądra 2.6.x [13] z Linux Kernel Archives [12]. Po ściągnięciu pliku w formacie .tar.gz, wpisz su, hasło roota, a następnie: # # # # # # # # # mv linux-2.6.x.tar.gz /usr/src cd /usr/src tar -zxvf linux-2.6.x.tar.gz ln -s linux-2.6.x linux cd linux/ make menuconfig make make install make modules_install Jeżeli podczas kompilowania jądra pojawiły się jakieś problemy, warto zajrzeć do wskazówek „Jak to zrobić” – Kernel-Build-HOWTO [14]. gdzie [gmailuser] i [gmailpassword] to nazwa i hasło użytkownika konta Gmail, zaś [fs_name] to nazwa systemu plików. Aby podłączać system plików Gmail automatycznie, trzeba zmodyfikować plik /etc/fstab. W poniższym przykładzie dopisaliśmy wiersz, działający jak instrukcja montowania: Rysunek 1: Gmail otwarto 1 kwietnia ubiegłego roku, oferując 1 GB przestrzeni dyskowej. Dokładnie rok później zwiększono ją do 2 GB zapowiadając, że na tym nie koniec. # nano /etc/fstab - dodaj poniższy wiersz §§ na końcu pliku/usr/local/bin/gmailfs.py §§ /path/of/mount/point §§ gmailfs rw,user,noauto, §§ username=śgmailuser],§§ password=śgmailpass], §§ fsname=śfs_name] - naciśnij CTRL+O, aby zapisaćU zmiany §§ i CTRL+X, aby wyjść z edytora- (Uwaga: jeżeli odpowiednie parametry zostały już zdefiniowane w pliku /etc/gmailfs.conf, można pominąć instrukcje zapisane wytłuszczonym drukiem.) Rysunek 2: Jeżeli filtr został zdefiniowany poprawnie, wiadomości tworzące system plików poja- Dostosowywanie Gmaila wią się w podsumowaniu pod ramką edycji filtra. Po wykonaniu wszystkich tych kroków i ponownym uruchomieniu komputera zobaczysz, że GmailFS jest podmontowany we właściwym katalogu. Na Rysunku 1 zaprezentowano składnię pliku /etc/fstab oraz wynik polecenia df. Teraz, kiedy system plików GmailFS już działa, możemy dopasować parę rzeczy do naszych upodobań. Po pierwsze, dobrze jest stworzyć etykietę i filtr, dzięki którym wia- domości programu GmailFS nie będą przechowywane razem z „prawdziwymi” wiadomościami e-mail. Zaloguj się na swoje konto Gmail i kliknij Edit Labels w zielonej ramce po lewej stronie. W polu tekstowym wpisz np. gmailfs, a następnie kliknij Create. Przejdź do skrzynki odbiorczej (Inbox) i zaznacz wszystkie wiadomości, których je- WWW.LINUX-MAGAZINE.PL steś nadawcą (Me w polu Sender). Następnie kliknij More Actions (Więcej operacji) i wybierz Apply Label – gmailfs (Przypisz etykietę – gmailfs). Ten krok jest niezbędny, ponieważ aby utworzyć filtr, musisz ustalić cechy wspólne wiadomości tworzących system plików. Kliknij Settings (Ustawienia), następnie Filter (Filtr), a potem – na dole strony – wybierz NUMER 17 CZERWIEC 2005 57 KNOW HOW GmailFS Create a new filter (Utwórz nowy filtr). Użyj nazwy systemu plików, którą podaliśmy wcześniej. Składnia filtra wygląda następująco: q=__g__[fs_name]__h__. Kliknij Next Step (Następny krok). Jeżeli podane ustawienia są poprawne, w podRysunek 3: sumowaniu pod ramką Z punktu filtra wyświetlone zostawidzenia ną wiadomości tworzące użytkownika system plików (Rysunek GmailFS 2). Teraz zaznacz opcje wygląda jak Skip the Inbox (Archive it) zwykły system (Pomiń skrzynkę odbiorplików. czą (zarchiwizuj ją)) i Apply the label – gmailfs (Przypisz etykietę – gmailfs). Kliknij Update Filter (Zaktualizuj filtr). Korzystanie z systemu plików GmailFS powinno już przebiegać bez najmniejszych problemów. Jeżeli chcesz, możesz używać go w środowisku graficznym, np. GNOME, podłączając go na żądanie podobnie jak zewnętrzne urządzenie USB. Używanie GmailFS w środowisku graficznym przysporzyło nam jednak paru problemów – w niektórych Inne zastosowania Gmaila Także inne projekty wykorzystują system Gmail w nowatorski sposób. Najbardziej znanym z nich jest Gallina [15], system do blogowania, wykorzystujący wiadomości Gmail jako notki blogowe; popularnością cieszy się także Goollery [16] - aplikacja umożliwiająca tworzenie galerii zdjęć. Oba te programy napisane zostały w PHP i korzystają z biblioteki Gmail-lite [17]. Gmail – inne możliwości Bardzo zajęci użytkownicy mogą sprawdzać konto Gmail z urządzeń przenośnych [18]. Jeżeli korzystasz z przeglądarki Firefox, możesz także zmienić arkusz stylów [19] strony głównej Gmail albo używać rozszerzenia sprawdzającego, czy nie nadeszły nowe wiadomości [20], bez konieczności otwierania osobnej zakładki. Dla użytkowników systemu Windows przeznaczony jest program Gmail Drive [21], działający podobnie jak GmailFS, a także powiadamiający o nadejściu poczty Gmail Notifier [22], który uruchamia się przy starcie systemu i działa w tle, umieszczając swoją ikonę w obszarze powiadomień (tacce systemowej). 58 NUMER 17 CZERWIEC 2005 przypadkach duża częstotliwość korzystania z plików sprawiała, że Gmail uznawał, że jest obiektem ataku hakerskiego. Podsumowanie Gigabajt wolnej przestrzeni dyskowej, dostępny z dowolnego miejsca na świecie? Wydaje się to zbyt piękne, aby mogło być prawdziwe. Zanim jednak na nowo zorganizujesz swoje środowisko pracy, opierając je na GmailFS, warto rozważyć ograniczenia takiego rozwiązania. Po pierwsze, jak nietrudno się domyślić, sama koncepcja wykorzystywania poczty elektronicznej do zapisywania i odczytywania plików jest znacznie mniej wydajna, niż tradycyjne sposoby ich przechowywania. Po GmailFS nie należy spodziewać się rewelacyjnej prędkości. Warto także pamiętać, że rozwiązanie to ma charakter eksperymentalny. Nie tworzono go z myślą o wysokiej niezawodności i zastosowaniach komercyjnych. Richard Jones, autor programu GmailFS, nie zaleca przechowywania w systemie plików GmailFS jedynych kopii ważnych zasobów. Ponieważ GmailFS nie obsługuje szyfrowania, nie można właściwie liczyć na ochronę prywatności. Nawet jeśli struktury Google odpowiedzialne za bezpieczeństwo wystarczą, aby zabezpieczyć pliki przed dostępem niepowołanych osób, nic nie uchroni ich przed wyszukiwaniem w nich informacji marketingowych i demograficznych przez sam system Google (problem ten dotyczy zresztą wszystkich systemów pocztowych dostępnych przez WWW – nie tylko systemu Gmail). Jeżeli jednak nie przeszkadzają ci te ograniczenia, możesz znaleźć dla programu GmailFS wiele użytecznych zastosowań. Użytkownicy Linuksa dokonali czegoś, co może doprowadzić do rewolucji koncepcyjnej. Wyobraźmy sobie tylko możliwość korzystania z tych samych plików z domu i z pracy bez konieczności noszenia ze sobą pamięci na USB czy płyt CD, albo samouruchamiającego się Linuksa, który umożliwia dostęp do plików z dowolnego miejsca na świecie. Jeżeli chodzi o kwestie związane z bezpieczeństwem i wydajnością, nadal będę nosić ze sobą pen drive’a; GmailFS jest jednak pożytecznym rozwiązaniem dla wielu użytkowników Linuksa. Jeżeli chcesz założyć sobie konto Gmail, z przyjemnością wyślę ci zaproszenie – napisz na adres [email protected] (dysponuję 50 zaproszeniami). ■ WWW.LINUX-MAGAZINE.PL AUTOR Fabrizio Ciacchi http://fabrizio.ciacchi.it jest Włochem i studiuje informatykę na Uniwersytecie w Pizie. Pracuje także jako konsultant i pisze artykuły poświęcone Linuksowi. INFO [1] Gmail: http://www.gmail.com [2] Strona Richarda Jonesa: http://ltsv-141. richard.jones.name [3] FUSE: http://fuse.sourceforge.net [4] Libgmail: http://sourceforge.net/projects/libgmail/ [5] Apt4Rpm: http://apt.freshrpms.net [6] Python 2.3.5 do pobrania: http://www.python.org/ftp/python/2.3.5/Python-2.3.5.tgz [7] Lista plików FUSE: http://sourceforge.net/project/showfiles.php?group_ id=121684 [8] CVS FUSE: http://cvs.sourceforge. net/viewcvs.py/fuse/python/ [9] Powiązania między Pythonem i FUSE: http://richard.jones.name/google-hacks /gmail-filesystem/fuse-python.tar.gz [10] CVS Libgmail: http://cvs.sourceforge. net/viewcvs.py/libgmail/libgmail/ [11] GmailFS do pobrania: http://ltsv-141.richard.jones.name/google-hacks/gmail-filesystem/gmailfs-0.3.tar.gz [12] Linux Kernel Archives: http://www.kernel.org [13] Jądro Linuksa 2.6.x do pobrania: http:// www.kernel.org/pub/linux/kernel/v2.6/ [14] Kernel-Build-HOWTO: http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html [15] Gallina: http://ion.gluch.org.mx/files/Hacks/gallina [16] Goollery: http://www.wirzm.ch/goollery [17] Gmail-lite: http://gmail-lite.sourceforge.net [18] Pocket Gmail: http://gmail.wiggster.com [19] Skórki dla Gmaila: http://persistent.info/archives/2004/10/05/gmail-skinning [20] Rozszerzenie Gmail Notifier: https://addons.update.mozilla.org/extensions/moreinfo.php?id=173 [21] Gmail Drive: http://www.viksoe.dk/code/gmail.htm [22] Gmail Notifier: http://www.google. com/downloads