ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/WebDAVでスマフォデータ同期で悩む :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/WebDAVでスマフォデータ同期で悩む

ページ内コンテンツ
  • スマフォとPC間のデータ連携を強化したいのです
  • スマフォとの同期ポリシー
  • 設定
    • ファイルシステムのACLを有効化する
    • ファイルシステムにACLを設定する。
    • WebDAVの設定を行う
  • スマフォと連動してみる。
    • アカウント設定
    • 同期フォルダの設定

スマフォとPC間のデータ連携を強化したいのです anchor.png[1]

iPhone/Androidとも、クラウドとのつながりを強化する方向になってきてますね。iPhoneだったらばiCloud,AndroidだったらばGoogle Drive等。電話帳やメール、そしてアプリのデータなども全て同期できるようになって、便利になりましたね。でも、おいちゃんは、クラウドにデータを預けるのは、なるべく嫌なんです。だって、覗き見されているとも限らないしさ。なもんで、なるべく手元に置いときたいのです。自前のサーバーを持ってるおいちゃんとしては、自前のサーバの共有ディスクに集めておきたいのです。ですが、そんな機能はAndroidには無い。で、いろいろいい手はないものか、と調べていた所…あるじゃないですか。FolderSync[2]というアプリ。こちらは、ありとあらゆるクラウドサービス、Samba,WebDAVとかと同期できるそうですわ。このSamba,WebDAVというところに惹かれまして、いざ、やってみようということにいたしました。

Page Top

スマフォとの同期ポリシー anchor.png[3]

  • PCから編集しやすいように、Sambaで共有されているホームディレクトリ上に同期フォルダを作る
  • スマフォのSDカードに保存されている動画、音楽、写真、電話帳等のデータを同期させるようにする
Page Top

設定 anchor.png[4]

Page Top

ファイルシステムのACLを有効化する anchor.png[5]

ACLとは、Access Control Listの略で、ファイルシステムのACLというと、ファイルシステムにアクセスできるユーザー権限を細かく設定する機能の事です。

まずは、ファイルシステムのACLを有効化するために、ACLのスイッチをONにして、ファイルシステムをマウントします。

# vi /etc/fstab

ユーザーのホームディレクトリに、WebDAVでアクセスするためのディレクトリを作るので、/homeがあるパーティションのディスクに対し、以下の設定をします。

/dev/sda1          /home          ext4            default,acl         0 1

aclを追加ね。で、これをやったあと、aclオプションを有効化するために、以下のコマンドを投入。

# mount -o remount /
Page Top

ファイルシステムにACLを設定する。 anchor.png[6]

以下の方針で行きまする。

  • webdavで共有できるディレクトリは、ユーザー(ここではuser1さん)のホームディレクトリ内の、shareというディレクトリにする
  • このディレクトリを、user1さんとapacheさんがアクセスできるようにする

WebDAVで書き込まれる場合、書き込むユーザーさんがWebサーバApacheが動くユーザー権限(Gentooデフォルトではapache.apacheさん)になります。何も設定しない権限でやると、ユーザーディレクトリはApacheさんが書き込めず、またApacheさんが書いたファイルをuser1さんがいじることができません。このために、以下のACLを設定します。

# setfacl -m g:apache:rwx,g:apache:rwx /home/user1/share/
 ← 共有ディレクトリへapacheグループ権限で参照・更新・実行を許可
# setfacl -m d:g:apache:rwx,g:apache:rwx /home/user1/share/
 ← 共有ディレクトリへ新規作成するファイルへapacheグループ権限で参照・更新・実行を許可
# setfacl -m u:user1:rwx,u:user1:rwx /home/user1/share/
 ← 共有ディレクトリへuser1ユーザ権限で参照・更新・実行を許可
# setfacl -m du:user1:rwx,u:user1:rwx /home/user1/share/
← 共有ディレクトリへ新規作成するファイルへuser1ユーザ権限で参照・更新・実行を許可
# ls
drwx------+  5 user1 users   4096 12月  3 23:21 webdav  ←ディレクトリのアクセス権に、+があることがACLが効いている証
#  getfacl share/
# file: share/
# owner: user1
# group: users
user::rwx
user:user1:rwx                #effective:---    ←user1さんにアクセス権が付いている
group::r-x                      #effective:---
group:apache:rwx                #effective:---    ←apacheさんにアクセス権が付いている
mask::---
other::---
default:user::rwx                      ←user1さんにアクセス権が付いている
default:user:user1:rwx
default:group::r-x
default:group:apache:rwx                 ←apacheさんにアクセス権が付いている
default:mask::rwx
default:other::r-x

ここまでで終わりです。ちなみに、ACLを解除したい場合は

# setfacl -b /home/user1/share/
Page Top

WebDAVの設定を行う anchor.png[7]

さらに、WebDAVのポリシーを、以下とします。

  • ユーザ名&パスワードを用いて認証OKの場合のみアクセスを許可する
  • データ暗号化のため、SSLで通信する

/etc/apache2/vhost.dに、SSL用のvhost設定ファイルdefault_ssl_vhost.includeがあります。こいつに設定追加。LDAPで認証して、かつuser1さんしかアクセスを許可しないように設定。LDAPでないBasic認証も可能です。

Alias /webdav/user1/ "/home/user1/share/"

<Directory "/home/user1/share/">
  DAV on
  Options FollowSymLinks
  AllowOverride All
  AuthType Basic
  AuthName "Please input user and password"
  AuthBasicProvider ldap
  AuthLDAPBindDN "cn=user,dc=example,dc=com"
  AuthLDAPBindPassword secret
  AuthLDAPURL "ldap://foo.example.com/ou=People,dc=example,dc=com?uid"
  require user user1
  Order allow,deny
  Allow from all
</Directory>

さらに、/etc/conf.d/apache2に、起動オプションで-D DAVを追加。まぁ、適切に…。うちのサーバ設定は、以下かな…

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D LANGUAGE -D SSL -D SSL_DEFAULT_VHOST -D PHP5 -D AUTH_DIGEST -D LDAP -D AUTHNZ_LDAP -D CACHE -D MEM_CACHE -D DAV"

で、apacheを再起動。

# /etc/init.d/apache2 restart
Page Top

スマフォと連動してみる。 anchor.png[8]

スマートフォンに、FolderSyncをインストールします。有償版と無償版があります。無償版は、クラウドアカウントに制限がありますが、おいちゃんの場合は、WebDAVしか使用しないので、無償版で十分です。

Page Top

アカウント設定 anchor.png[9]

FolderSyncをインストールし、立ち上げると、メニューが出てきます。「アカウント」で、先ほど作ったWebDAVの通信アドレス、フォルダ、ユーザ名、パスワードを入力。「ログインを検証」ボタンを押してみます。「ログインに成功」メッセージが出たらば、問題なしです。

Page Top

同期フォルダの設定 anchor.png[10]

「Folderpairs」で同期したいフォルダを入力します。アカウントは、先ほど設定したWebDAVにつけたアカウント名。リモートフォルダはWebDAVのフォルダ、ローカルフォルダはスマフォ側のフォルダです。このFolderpairsを複数作ることによって、複数箇所の同期が出来ます。これで、おじさんは

  • スマフォカメラで撮った写真
  • 自作着メロ
  • 動画
  • 電話帳

をバックアップしてます。スマフォからのバックアップだけでなく、PC→スマフォへのコピーも、WebDAV上の同期フォルダに置いておけばコピーされるので、いちいちUSB接続しなくてもデータのコピーができるので、とても楽ちんになりましたよ~。


Last-modified: 2013-12-04 (水) 00:46:37 (JST) (3787d) by maruo