box.comのdavfs2およびencfs

こんにちは、ハブラメンシュ、



私の最も深い知識をあなたと共有し、私の在庫を補充したいと思います。 したがって、すべては、syncany.orgプロジェクトが生まれる前に死んだという事実から始まりました。少なくとも、その活動から判断すると、すぐには生まれません。 もう待つことができなかったため、既存の作業方法を使用して、リモートクラウドファイルストレージ(以降UFC)をオープンクライアントで編成し、クライアント側で暗号化することにしました。 以下に書かれていることはすべてUnixライクなオペレーティングシステムに関連しているため、Windows OSのユーザーはそれ以上の説明をスキップできます。



エントリー



今日、非常に多くの異なるクラウドストレージが存在するため、Dropboxの統治の時代に、その違いと利点を整理することは以前ほど簡単ではなくなりました。 サービスを比較するために、YandexまたはGoogolは、この愛情を込めて設計され、維持されているウィキペディアのタブレットをある程度支援します。

標準ツールを使用してリモートディスクをマウントしたり、クライアントのソースコードを取得したり、ファイルをリモートディスクに送信する前に自分でファイルの内容を暗号化したりできることが重要でした。 クライアントのコンパイルに対処したくなかったため、オペレーティングシステムの標準ツールを使用して、すぐに適切で適切なサービスのサブセットを絞り込みました。



パート1:UVCのマウント



いくつかのhabrostatsを読んだ後、いくつかのクラウドベースのストレージがWebDAVのようなHTTPハイパーテキストプロトコルの素晴らしい拡張をサポートしていることに突然気付きました。 リモートWebリソースをマウントするための標準のLinuxツールはdavfs2です。 このモジュールは、ユーザー空間モジュールファイルシステムであるFUSEモジュールに基づいています。 モジュールをインストールした後、通常の定命のユーザーがリモートリポジトリをマウントできるように、モジュールを再構成する必要があります。 これをする方法はインターネットで簡単に見つけることができるか、例えばここで読むことができます 。 次に、次のように、自分をdavfs2グループに追加することを忘れないでください。



sudo adduser IchBins davfs2
      
      







これで、UFHサービスの思慮深い選択に進むことができます。 考え直すことなく、 Box.comを選択します。 さらに、サービスのプロモーションを数回宣伝した後、どのユーザーも無料で貴重な50 GBの貴重なディスク容量を獲得できます。 このサービスの唯一の欠点は、おそらく、一般ユーザー(フリーローダー)の最大ファイルサイズが100 MBに制限されていることです。 サービスへの無料登録後、ユーザー名とパスワードなどの属性を受け取ります。 それらを使用して、サービスのWebインターフェースを使用してファイルシステムにアクセスします。 UHFのマウントプロセスを容易にするために、/ etc / fstabに次の行を追加できます。



 https://www.box.com/dav/ /home/IchBins/box.com davfs noauto,user 0 0
      
      







ここで、UVXは〜/ box.comディレクトリにマウントされます。これは事前に作成する必要があります。 UVCがマウントされるたびにパスワードを入力する必要を回避するには、次を実行する必要があります。



 mkdir ~/.davfs2 cp /etc/davfs2/davfs2.conf ~/.davfs2 echo "use_locks 0" >> ~/.davfs2/davfs2.conf echo "https://www.box.com/dav BoxUserName BoxPassword" > ~/.davfs2/secrets chmod 600 ~/.davfs2/secrets
      
      







ここで、BoxUserNameとBoxPasswordは、サービスの登録時に指定した属性です。覚えていますか? すべてを正しく行ったら、次のようにUVCをマウントしてテストできます。



 mount /home/ichbins/box.com echo "Eine Datei zum testen" > ~/box.com/testfile.txt cat ~/box.com/testfile.txt
      
      







つまり これで、リモートファイルを使用して、ローカルと同様に作業できます



パート2:暗号化



現在、暗号化の問題を解決することは残っています。 すべてのファイルが、自分に属していないリモートサーバーに開いた状態で保存するのに役立つわけではありません。 したがって、すべての情報がその場で暗号化される追加のリモートディレクトリを作成することは理にかなっています。 たとえば、TruCryptを使用して、このディレクトリに暗号化されたコンテナを作成できますが、コンテナのサイズは100 MBを超えることはできません(Box.comの制限を覚えていますか?)、2バイトを変更するには完全にダウンロードする必要があります。 つまり、2バイトのために少なくとも200MBのトラフィックがあります! ここでencfs助けになります。 encfsの利点は、既存のファイルシステムの追加レイヤーとして機能するため、暗号化されたコンテナ全体を送信することなく個々のファイルを操作できることです。

encfsをインストールし、自分自身を愛する人としてfuseグループに追加した後



 sudo adduser IchBins fuse
      
      





UHFで暗号化されたディレクトリの作成を開始できます。



 mkdir ~/box.com/crypt #      mkdir ~/box.com.crypt #       encfs /home/IchBins/box.com/crypt /home/IchBins/box.com.crypt #  ~ ,  
      
      







いくつかの簡単な質問が表示され、作成する暗号化されたディレクトリのパスワードの入力も求められます。 ありふれた教育の観点から、このパスワードは、Box.comに登録するときに受け取ったパスワードと一致してはなりません。 すべてがうまくいった場合は、次のようにすべてのサービスの動作を同時にテストできます。



 cat /etc/passwd > ~/box.com.crypt/mypasswd ls -la ~/box.com/crypt
      
      







出力(つまり、UFXサブディレクトリ)は次のようになります。



 ichbins@xubuntu:~$ ls -la ~/box.com/crypt/ total 1.7K -rw-rw-r-- 1 ichbins ichbins 1.7K May 13 15:25 FPcfOjww7ZzucMGSMgncWXEt drwxr-xr-x 2 ichbins ichbins 368 May 13 15:25 ./ drwxr-xr-x 5 ichbins ichbins 136 May 13 15:25 ../ -rw-r--r-- 1 ichbins ichbins 1.1K Apr 14 23:24 .encfs6.xml
      
      







したがって、ローカルディレクトリ〜/ box.com.cryptのファイルに対するファイル操作は自動的に暗号化され、UFXに送信されます。



パート3:すべてを自動的にマウントします。



davfsがマウントされた後、暗号化されたパーティションを自動的にマウントする方法を学習する必要があります。 インターネット上で無料の検索を数時間行った後、特定のファイルシステムがマウントされたというメッセージをシステム上でLinuxから取得する方法を理解できませんでした。 唯一のオプションは、incrondとフィルタースクリプトを使用して/ proc / mountsファイルへの変更を監視することでした。 これを台無しにしたくなかったので、簡単なスクリプトを書きました。



 cat ~/mount.box.com #!/bin/sh userhome=/home/IchBins service=box.com isdavmounted=$(mount | grep $service | grep davfs) isencmounted=$(mount | grep $service | grep encfs) if [ -n "$isencmounted" -o -n "$isdavmounted" ]; then #unmount [ -n "$isencmounted" ] && { fusermount -u "/${userhome}/${service}.crypt" && msg="Encfs," } [ -n "$isdavmounted" ] && { umount "/${userhome}/${service}" && msg="${msg}Davfs " } if [ -n "$msg" ]; then notify-send -u low -i info "$service unmounting" "$msg unmouned successfuly!" else notify-send -u low -i error "$service unmounting" "Failed to unmouned $service!" fi else #mount mount /${userhome}/box.com && { msg="Davfs," encfs --extpass="cat ~/.encfs/$service" /${userhome}/box.com/crypt /${userhome}/box.com.crypt/ && { msg="${msg}Encfs " } } if [ -n "$msg" ]; then notify-send -u low -i info "$service mounting" "$msg mouned successfuly!" else notify-send -u low -i error "$service mounting" "Failed to mouned $service!" fi fi
      
      







スクリプトが暗号化されたパーティションへのパスワードを常に要求しないように、次のことを行いました。



 mkdir ~/.encfs echo "EncfPass" > ~/.encfs/box.com chmod 600 ~/.encfs/box.com
      
      





したがって、encfsは--extpassオプションを使用してこのパスワードを読み取ります



インターネット上でファイルシステムのアンマウントをマウントするためのデスクトップ上のLinuxアイコンを作成する正しい方法を見つけたことがないので、前述のスクリプトを起動し、UHFファイルシステムとその暗号化パーティションをマウント/アンマウントするランチャーアイコンを作成しました。

マウント/アンマウント操作が成功すると、スクリプトは次の形式のメッセージを表示します。

画像



PS:Ubuntuとその派生物のユーザーは、Ubuntu Software Centerからdavfs2とencfsを直接インストールできます。

編集1:記事を特定のUFHサービスの広告とは見なさないでください。Box.comが最初に手に入れたのはその人だけです。 Yandex.Diskなど、WebDAV経由でアクセスできる任意のサービスを使用できます(Poisonは10GBを無料で提供します)

編集2:UVXの自動マウント用のスクリプトを少し変更したため、より普遍的であり、サービスをパラメータとして設定できます。 元の記事に大きな変更を加えないために、スクリプトのソースコードをここに配置しました



All Articles