GmailFS czyli szanujmy wspomnienia
Posted on Tue 25 August 2009 in Shitz, Tips4Unices • 3 min read
Znudzony walką z inotify i poruszony myślą, że dziś zaskwierczy coś w domowym dysku i wczoraj uporządkowana kolekcja zdjęć pojedzie na wieczną wycieczkę, poruszony tym więc, postanowiłem sklonować zdjęcia na jakieś backupowe urządzenie.
Płyty DVD (na CD toto się nie mieści) bywają zawodne jak domowe dyski, więc paranoja tylko się powiększyła. I przypomniałem sobie, że ktoś, kiedyś, wymyślił jak używać konta na Gmailu jako dysku na bekapy.
Rzeczywiście, grający w skłosza buddysta, Richard Jones, napisał GmailFS - soft pozwalający na montowanie konta Gmail jak zwykłego filesystemu w Linuksie. GmailFS napisany jest w Pythonie i używa FUSE do tworzenia systemów plików w przestrzeni użytkownika, oraz biblioteki libgmail do komunikacji z Gmailem.
INSTALACJA była trywialna:
- upewniłem się, że posiadam Pythona 2.3,
- zainstalowałem najnowszą wersję FUSE,
- ściągnąłem fuse-python.tar.gz i zainstalowałem jak pan Bóg przykazał,
- z CVS zdarłem libgmaila i skopiowałem libgmail.py oraz mkconstants.py do /usr/lib/python2.3/site-packages/ (w innych distrach może być inna ścieżka). Zrobiłem link: ln -s /usr/lib/python2.3/site-packages/mkconstants.py /usr/lib/python2.3/site-packages/constants.py, w razie czego bo w dokumentacji była inna nazwa pliku.
- pobrałem gmailfs-0.4.tar.gz i po rozpakowaniu, skopiowałem pliki: gmailfs.py do /usr/local/bin/gmailfs.py, a mount.gmailfs do /sbin.
- /mnt/dyskgmaila to katalog, pod który podpiąłem konto na Gmailu,
- kajko to nazwa gmailowego konta,
- kokosz hasło do tego konta,
- wK0ssmo-ssie to nazwa systemu plików (fsname), która zapewnić ma mi bezpieczeństwo i dać jeszcze jedną możliwość, o której napiszę później.
/dev/fuse on /mnt/dyskgmaila type fuse (rw,nosuid,nodev)
Opcja fsname jest równie, jeśli nie bardziej, ważna co nazwa konta i hasło do niego. Jeśliby ktoś zdolny i złośliwy poznał jej brzmienie, mógłby zniszczyć filesystem gmailowy przez "wstrzyknięcie" spreparowanych wiadomości. Dlatego przy jej wyborze trzeba się kierować tymi samymi zasadami co przy wymyślaniu silnych haseł. Jest jeszcze rzecz związana z fsname, otóż dzięki tej opcji możemy utworzyć w naszym gmailowym koncie kilka, niezależych filesystemów. Wystarczy za każdym podmontowaniem konsekwetnie używać różnych fsname. I w ten sposób mogę mieć np. dwa filesystemy, w jednym trzymać zdjęcia o które tak się boję, w drugim dokumenty na których mi zależy. Do mnie należy wybór co w danej chwili chcę mieć podmontowane.
Autor GmailFS zaleca użycie pliku /etc/gmailfs.conf, w którym zapisane są nazwa konta, hasło i fsname. Ma to zapobiec możliwości podejrzenia tych danych przez innych użytkowników w systemie wielodostępowym. W pierwszej chwili popełniłem błąd, pozostawiając w /etc/fstab wpis zawierający nazwę konta, hasło i fsname. Po wpisaniu tych danych do /etc/gmailfs.conf, trzeba koniecznie usunąć te wpisy z fstab-a!.
Na koniec JESZCZE TRZY UWAGI.
- Ponieważ komunikacja z serwerami Gmail.com odbywa się czystym tekstem, użytkownicy paranoiczni mogą skorzystać z rozszerzenia pyOpenSSL, by transmisje zaszyfrować. Mnie na razie nie chciało się tego robić, może jutro, jutro, jutro....
- Kasowanie plików, niestety, nie usuwa ich z konta Gmail lecz przesuwa do Kosza. Usunąć je trzeba ręcznie, logując się na konto za pomocą przeglądarki i czyszcząc zawartość Kosza.
- Po skopiowaniu plików na GmailFS, na koncie Gmail pojawiają się nowe, odpowiednio spreparowane wiadomości. Aby uniknąć ich wyświetlania, żeby nie mieszały się z normalnymi mejlami, można stworzyć Filtr, który je automatycznie zarchiwizuje. Nie udało mi się tego porządnie zrobić ale tym się nie przejmuję ponieważ na potrzeby GmailFS założyłem sobie oddzielne konto.
Accordingly, you agree that you will not copy, reproduce, alter, modify, or create derivative works from the Service. You also agree that you will not use any robot, spider, other automated device, or manual process to monitor or copy any content from the Service.