Gmailfs. Монтируем Gmail как сетевой диск.
Продолжаю играться с виртуальными файловыми системами, построенными на основе fuse (Filesystem in Userspace) - файловой системы в пространстве пользователя. Здесь (SSHFS -монтирование удаленных систем через SSH) я уже писал о sshfs - утилите, позволяющей монтировать разделы удаленного компьютера с помощью fuse. Также существуют еще fuseftp, для монтирования ftp разделов, fusesmb монтирования сетевых директорий Windows, ntfs-3g для монтирования ntfs разделов с возможностью записи, о которых я, надеюсь, напишу позже. Вообще, для желающих создать свою виртуальную файловую систему есть статья Разработка собственной файловой системы с помощью FUSE.
В свою очередь, Gmailfs - это виртуальная файловая система позволяющая пользователям монтировать и использовать дисковое пространство, предоставляемое им с почтовым ящиком от Gmail. На данный момент это приблизительно 3 Гигабайта в ваше личное пользование. Конечно, скорость работы меньше чем с локальными разделами. Главным же преимуществом есть возможность доступа с любой точки земного шара, имеющей выход в Интернет.
Установка.
Здесь я рассматриваю установку программы в Debian Etch. Все должно работать и в последних версиях (Edgy и Feisty) Ubuntu/Kubuntu. С Dapper были некоторые проблемы, решение описано здесь.
Бинарные пакеты для других популярных дистрибутивов тоже существуют. Проверьте с помощью менеджера пакетов вашей системы.
Для работы программы в системе должен быть установлен Python версии 2.3 или позже. Также ядро должно быть собрано с поддержкой fuse. В последних версиях ядра он включен по умолчанию. Если в ядро вашего дистрибутива этот модуль не включен, соберите и установите его как описано здесь.
Бинарные пакеты для других популярных дистрибутивов тоже существуют. Проверьте с помощью менеджера пакетов вашей системы.
Для работы программы в системе должен быть установлен Python версии 2.3 или позже. Также ядро должно быть собрано с поддержкой fuse. В последних версиях ядра он включен по умолчанию. Если в ядро вашего дистрибутива этот модуль не включен, соберите и установите его как описано здесь.
Собственно установка:
$ sudo apt-get install gmailfs
Проверяем, загружен ли модуль fuse (у меня не был):
$ lsmod | grep fuse
Если команда выдает что-нибудь наподобие:
fuse 48944 0
все замечательно, следующий шаг можно пропустить, иначе
подгружаем модуль fuse:
$ sudo modprobe fuse
Модуль должен подгрузиться. Можете проверить опять.
Теперь можно приступить и к знакомой работе, связанной с монтированием.
Монтирование.
Создаем точку монтирования:
$ sudo mkdir -p /mnt/gmail
Монтировать как всегда можно вручную (после перезагрузки все теряется) и прописав опции монтирования в файле /etc/fstab. Все зависит от частоты перезагрузки вашего компьютера и частоты пользования данной утилитой. Рассмотрим оба варианта.
Монтирование вручную:
Наберите в терминале следующее:
Вставьте соответственно имя своего аккаунта и пароль. Также введите что-нибудь пооригинальней в пункте fsname (вроде пароля).$ sudo mount -t gmailfs none /mnt/gmail -o username=account_name@gmail.com,password=password,fsname=xxx
Ignored option :rw
Для проверки скопируйте файл в созданную директорию и проверьте ее содержимое (только под пользователем root).
$su
#cd /mnt/gmail/
#mc (копируем файлы в папку /mnt/gmail)
#ls
1.png 2.png 3.png 4.png
Закончив работу, отмонтируем:
#umount /mnt/gmail
Монтируем с записью в /etc/fstab/:
Открываем упомянутый файл:
$ sudo nano /etc/fstab
и вносим в него опции монтирования:
/usr/share/pycentral/gmailfs/site-packages/gmailfs.py /mnt/gmail gmailfs username=account_name@gmail.com,password=password,fsname=xxx
Сохраняем изменения и монтируем:
$sudo mount /mnt/gmail
Виртуальная файловая система смонтирована и готова к работе.
В качестве альтернативы все данные (имя, пароль и fsname) можно занести в файл /etc/gmailfs/gmailfs.conf и после этого монтировать без них.
Теперь несколько слов о проблемах:
1. При копировании файла на gmail-disc на ящик приходит 3 письма с такими заголовками:
"v=3 r=1137456558 q=__g__gmail__h__ "
Я эту проблему решил с помощью настройки фильтров на аккаунте gmail и в почтовой программе. В качестве параметра для фильтрования можно задать величину q=__g__123123__h__, где 123123 ваш fsname.
2. Работать можно только от пользователя root
От имени обычного пользователя зайти в примонтированную папку не получается. При попытке просмотреть права доступа выдает следующее:
serhiy@debian:/mnt$ ls -l
итого 6
?--------- ? ? ? ? ? gmail
Может это выглядит и не очень красиво, но зато работать можно от имени обычного пользователя. В целом, меня все устраивает.
serhiy@debian:/mnt$ mount /mnt/gmail/
serhiy@debian:/mnt$ cd gmail/
serhiy@debian:/mnt/gmail$ ls
1.png 2.png 3.png 4.png IMG_0001.JPG
serhiy@debian:/mnt/gmail$ umount /mnt/gmail
serhiy@debian:/mnt/gmail$ cd ..
serhiy@debian:/mnt$ umount /mnt/gmail
umount: /mnt/gmail mount disagrees with the fstab
serhiy@debian:/mnt$ sudo umount /mnt/gmail/
serhiy@debian:/mnt$
17 коммент.:
2. Работать можно только от пользователя root
В опциях монтирования можно попробовать добавить user или users, это разные опции, но смысл у них похожий, подробнее man mount. Можно будет монтировать диски без su (XFCE4 mount plugin - очень удобная штука ;) и после монтирования работать с файлами от имени обычного пользователя.
А работать из-под root - это совсем неправильно. Только для настроек и тестирования сети. А все остальное в правильно настроенной системе может обычный пользователь - просто надо разобраться, как ему дать права это делать ;)
Avari
Да я и сам понимаю, что работать из под рута это не хорошо. Можно правда пользоваться утилитой sudo, но тоже не очень удобно. Пошел рыться в опциях монтирования.
Немного разобрался. Теперь монтировать и работать можно от имени обычного пользователя. Права рута нужны только для того, чтобы отмонтировать данный раздел.
Интересно, как просисходит монтирование, ведь страрт сетевых сервисов и соединение с нетом происходят после монтировнаия разделов в соответствии с /etc/fstab.
to_lib6
Пока не могу ответить на этот вопрос.
А как монтируется NFS?
Вообще для того что бы отмонтировать fuse-файловые системы не от рута, надо пользоваться fusermount -u. ;) Во всяком случае у меня это прекрасно работает для siefs (только ее юзаю под fuse) под обычным юзером.
Вообще для того что бы отмонтировать fuse-файловые системы не от рута, надо пользоваться fusermount -u. ;)
Вот спасибо!!! Действительно работает :).
drwxr-xr-x 2 root root 48 2007-04-21 14:13 ds2
drwxr-xr-x 2 root root 48 2007-04-21 14:13 ds3
?--------- ? ? ? ? ? gmailfs
drwxr-xr-x 2 root root 48 2007-04-21 13:28 loop1
вроде все сделал правильно, монтируется не выдает никаких ошибок, только после монтирования каталог становится недоступен, ниот юзера ни от рута.
Еще нашел проблему, если в пароле содержатся запятые(или не только запятые)
при вводе пароля типа PaSs,wd
получаем вывод:
Ignored option : wd
И далее пароль считается неверным.
Пробовал такими способами:
"PaSs,wd"
'PaSs,wd'
PaSs\,wd
pass="PaSs,wd"
password=$pass
Эффект тот же. Не знаю, что и делать, а пароль менять не по джентльменски.
Я сам не линуксоид, но идея мапировать gmail как сетевой диск мне понравилась! Люблю креатив. Спасибо за свежую идею.
если монтировать прямо так:
sudo mount -t gmailfs none /mnt/gmail -o username=account_name@gmail.com,password=password,fsname=xxx
то любой желающий увидит ваш пароль и логин, использовав ps aux | grep gmail.com
просветите, как складывать опции в отдельный файл?
Монтировать-то монтирует и даже вроде копирует что-то. Только вот почему-то файлы после этого не появляются (вывод ls пустой), хотя в вебинтерфейсе файлы есть. Это только у меня так или это нормальное поведение такое?
Я вообще знал, что такое можно делать с Gmail-ом. Но знал я только как это делается в винде...
Спасибо большое за статью, обязательно попробую.
ЗЫ: предлагаю обмен ссылками!
http://mrvisor.wordpress.com/
на вас ссылку я уже добавил :)
Что-то не получается у меня от обычного пользователя монтировать...
что-то вообще работать отказывается
существуют fuseftp, для монтирования ftp разделов, fusesmb монтирования сетевых директорий Windows.
подскажите плиз как в win xp создать виртуал hdd с фтп-источником? эти фусе я искал но вроде всё для линукс
а вот это вот!!!
-
приходить в контакт, iCQ, allnight первыми и после удаляться не прощаясь с напускным безразличием и видом жутко занятых особ, которые случайно опустились с небес до нас смертных,
Generic Viagra
Viagra Online
Buy Viagra
Отправить комментарий