FreeBSD 9.1のnetatalkを3.0.5から3.1.0にバージョンアップする[追記あり]
FreeBSDのパッケージ管理が面倒になってきました。
- FreeBSDのパッケージ管理が面倒: プラスα空間 (2013年12月24日)
なので、次世代パッケージ管理システムに移行しようと思っているのですが、まだ手を付けていません。
この記事では、旧来のやり方での、netatalk 3.0.5から3.1.0へのバージョンアップ方法について記載しています。
最初は、当時の最新版のnetatalk 3.0.4をインストールしました。
- FreeBSD 9.1にnetatalk 3.0.4をインストール[追記あり]: プラスα空間 (2013年8月8日)
その後、netatalk 3.0.5にバージョンアップしたのですが、その時はやり方を記録するのを忘れていました。
今回は、忘れない内に、記事として投稿しようと思います。
やり方は簡単で、次の通りです。
# cd /usr/ports # portsnap fetch # portsnap extract # cd /usr/ports/net/netatalk3 # make config-recursive # make deinstall # make reinstall clean
パッケージ管理は面倒ですが、単体でバージョンアップするのは簡単です。makeするだけって、どんなに楽な事か!
make config-recuresiveの時に、netatalk 3.0.6, 3.1.0で搭載された新機能もイネーブルにしています。
以下、補足説明です。
- FreeBSDのZFSファイルシステムでのACLサポート(3.0.6)
- CNIDのバックエンドとしてのMySQLのサポート(3.1.0)
1. FreeBSDのZFSファイルシステムでのACLサポート(3.0.6)
netatalk 3.0.6から、FreeBSDのZFSでも、ACLがサポートされる様になりました。
試しに、FreeBSDでファイルを作ります。getfaclで見ると、ACL属性は付いていません。
$ touch file1 $ ls -l file1 -rw-r--r-- 1 oichi staff 0 Jan 12 13:51 file1 $ getfacl file1 # file: file1 # owner: oichi # group: staff owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
このファイルに対して、OS XのFinderの
→ で、アクセス権を割り付けます。当たり前なのですが、アクセス権をつけるユーザは、FreeBSDでアカウントを持っているユーザです。
とりあえず、rootにアクセス権減を与えてみました。FreeBSDのgetfaclで見ると、確かにACL属性が付いています。
$ ls -l file1 -rw-r--r--+ 1 oichi staff 0 Jan 12 13:51 file1 $ getfacl file1 # file: file1 # owner: oichi # group: staff user:root:rw-p--aARWc---:------:allow owner@:rw-p--aARWcCos:------:allow group@:r-----a-R-c--s:------:allow everyone@:r-----a-R-c--s:------:allow
netatalkでACLが使える様になった時、LDAPも有効でなければならなかったと記憶しています。この理由はFreeBSD(AFPサーバ)とOS X側でLDAPを使って同じユーザアカウントが必要だからだと思います。
今は、LDAP運用していなくても、ACLだけ有効にする事ができるみたいです。
アカウントについては、手動で、FreeBSD(AFPサーバ)とOS X側とを、そろえておけば大丈夫だと思うのですが、未検証です。
2. CNIDのバックエンドとしてのMySQLのサポート(3.1.0)
netatalk 3.1.0から、CNIDのバックエンドとして、MySQLがサポートされる様になりました。大規模システム用だそうです。
“Clustering/HA"となっているので、クラスタ化やHA(高可用性)のためみたいですね。
- クラスタリングとは 〔 クラスタ化 〕 【 clustering 】 – 意味/解説/説明/定義 : IT用語辞典
- HAとは 〔 高可用性 〕 〔 ハイアベイラビリティ 〕 – 意味/解説/説明/定義 : IT用語辞典
それ以外に、CNIDが実際にどのような値に割り付けられているか、phpMyAdminなどで、視覚的に確認できるのも利点だと思います。まあ、確認できるからと言って、どうと言う事は無いのですけれど。
afp.confの設定方法は、次のページで解説されていました。ありがとうございます。
MySQLのサーバを指定して、対象となるボリュームに、"cnid scheme = mysql"を書くだけです。
ボリュームを開いた瞬間に、MySQLのデータベースに、CNIDが作られます。もちろん、dbdコマンドで作成する事もできます。
ただ、難点があります。
afp.confに平文でMySQLのパスワードを書く必要があります。そして、afp.confは、一般ユーザ権限で読めないと、AFP接続に失敗します。つまり、一般ユーザが、平文のMySQLのパスワードを読めちゃうと言う事です。セキュリティ上、良くないですね。
この対処のために、afp.confのパーミッションが600のままで、AFP接続ができる様になるパッチを書きました。一応、うまく動いています。
(追記 2014-01-14 21:57)
“afpd -V"の結果を載せておきます。
# afpd -V afpd 3.1.0 - Apple Filing Protocol (AFP) daemon of Netatalk This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. Please see the file COPYING for further information and details. afpd has been compiled with support for these features: AFP versions: 2.2 3.0 3.1 3.2 3.3 CNID backends: dbd last tdb mysql Zeroconf support: Avahi TCP wrappers support: Yes Quota support: No Admin group support: Yes Valid shell checks: Yes cracklib support: No EA support: ad | sys ACL support: Yes LDAP support: No D-Bus support: Yes DTrace probes: No afp.conf: /usr/local/etc/afp.conf extmap.conf: /usr/local/etc/extmap.conf state directory: /var/netatalk/ afp_signature.conf: /var/netatalk/afp_signature.conf afp_voluuid.conf: /var/netatalk/afp_voluuid.conf UAM search path: /usr/local/libexec/netatalk-uams// Server messages path: /var/netatalk/msg/
ディスカッション
コメント一覧
まだ、コメントがありません