ownCloudでプライベートなクラウド

Cloud

クラウド、クラウドって、最近は何でもかんでもクラウドって呼んでるような気もしますが・・・
まあ、それは良しとして、ディスク等の記憶容量の少ないデバイスにとってはとても助かるものもありますね。デバイス間でデータの同期ができて共有できるのが手間いらずで便利。
ただし、一般的に提供されているクラウドに置いてもいい情報なのかどうかの選別はきちんとやらないと問題です。
組織であれば規定と監査でチェック機能を設けなければ重要な情報の損失や漏洩の危険度が増すのではないでしょうか。
とはいえ、上手く使えばとても便利なのがクラウドです。
 
 

ownCloud

クライアントさんに「ストレージサーバを作ってもらえませんか?」と言われ、

  • elFinder
  • FreeNAS
  • OpenMediaValut
  • VPN+Samba

を試しましたが、少し要求に合わない。「アクセスコントロールに難ありですけど、シンプルにWebDAVでいきましょうか?」と、お互いに妥協していた時に、Twitterのタイムラインに、

第231回 ownCloudで自分専用クラウドストレージ|技術評論社

という記事が流れてきました。「ownCloudで自分専用クラウドストレージ」って何か良い感じのタイトル、そして「ファイル共有部分はWebDAVを,インターフェース部分はPHPを使って実装」って、もしやアクセスコントロールの詳細にできるかも!と思って試してみました。
 
 

ownCloudに含まれる機能

  • ディレクトリ構造のファイルストレージ
  • カレンダー
  • タスクスケジュール
  • 音楽ストリーミング
  • 連絡帳(アドレスブック)
  • 暗号化
  • ユーザとグループ管理
  • ブックマーク
  • フォトギャラリー
  • ファイルのバージョニング

 
 

ownCloud 4.0.4のインストール

Apache2.2.22 + MySQL5.1.63 + PHP5.3.14 の環境にインストールしました。
PHP5 (>= 5.3)の環境で必要なオプションを付加していれば、インストールは問題なくできると思います。こちらにはapt-getでphp環境を整える手順が書かれています。
ownCloud自体にWebDAVサーバがビルドインされているので、ApacheにWebDAVプロトコルをハンドリングできるようにしていなくても大丈夫のようです。
 
 

ownCloud用データベースの作成

mysql> CREATE DATABASE ownCloud;
mysql> GRANT ALL ON ownCloud.* to USER_NAME@localhost IDENTIFIED BY ‘PASSWORD’;
ベースとなる環境を整えれば、ownCloudをダウンロードさせてもらって、ドキュメントルートに展開し、/path/to/your/owncloud/install/data の権限をApacheのUIDとGIDに変更する。
次にブラウザでownCloudのインストールを環境に合わせてOK。
 
 

ownCloud 4.0.4でユーザを作成することができない

と、ここまでは難なく進むことができたのですが、いざユーザを作成しようとするとダメなんです。やたらJavaScriptを使ってるのでMacのSafariとの相性かな?と思ったのですが、他のブラウザでも同じくユーザ作成ができないのでブラウザ依存ではなさそう。
 
 

SQL文でユーザ追加

SHOW TABLES;


とにかく早くユーザ権限で試してみたかったので直接テーブルにユーザを入れてみました。
こういうことでもないと、DBの中身を見ることは無くなったので良かったのかもしれません。インストールで作成されたテーブルには分かり易い名前が付けられていて中身もとてもシンプルなので私にも理解できます。
グループの追加もままならないので、ユーザと合わせて

  • oc_groups
  • oc_users

にデータをインサートしました。
mysql> INSERT INTO oc_groups (gid) VALUES (‘family’);
mysql> INSERT INTO oc_users (uid) VALUES (‘hikaru’);
mysql> INSERT INTO oc_users (uid) VALUES (‘mirai’);
 

ownCloud ユーザ設定


次にadminグループのユーザ権限でownCloudにログインして、SQL文で追加したユーザのパスワードとグループ、クォータを設定すれば問題ないようです。
しかし、ファイルの共有以外にもカレンダーや連絡先の同期もできるのがいいです。iPhoneからも更新できます。
有名どころのクラウドサービスに自分の個人情報が知らないうちに上げられていることもありますよね。
個人情報が漏洩しているという意味ではありませんが、連絡先の同期が簡単にできるので、便利に思って意識せず使っている人が多いと思います。
そのような、特定のサービス(組織)に情報が集まる仕組み(構造)にちょっと待った!と思っているんですよ。
何でもかんでもクラウドではなく、大切な情報は自分達の管理できるところに置いて守らないと!! そういう意味で、このownCloudのコンセプトは自分の思考に合致します。今後、さらに期待したいですね。
 
 

ownCloud 4.0.4のコンパネでユーザ追加するには

個人で使う分にはSQLでユーザをインサートしてやればいいのですが、流石にクライアントさんもそれでは使いにくいでしょうから調べました。
手っ取り早く修正すべきファイルを見つけるには、ログを見たりエラー文を吐かせたりしてキーワードを見付け、そのキーワードの入ったファイルをディレクトリ内から見つければいいです。

A valid username must be provided


今回のケースのownCloud 4.0.4では、ユーザ作成時に何も入力せず「作成」ボタンを押すと、「Error creating user」と表示されます。ownCloud 4.0.4のソースディレクトリ内で、「grep -r “Error creating user” *」とコマンドを打てば、~/settings/js/users.js というファイルにその記述があることが分かります。

216行目を削除


プログラムによってはincludeやrequireで別のファイルを追っていくこともありますが、ownCloud 4.0.4の場合は、このファイルの216行目の「 location.reload(); 」を削除することによって、ユーザの作成ができるようになります。
 

関連記事一覧

  1. この記事へのコメントはありません。