Ubuntu 10.04にnetatalk 2.2beta4インストール

netatalk,パソコン・インターネット

netatalk 2.2beta4がリリースされましたので、インストールしました。

状況は、beta3の時と同じです。記事の内容も手抜き(ほとんど、前回からコピペ)です。ごめんなさい。

ACL設定に挑戦していますが、進捗はありません。前回と同じです。

インストールは、次の記事を参考にしています。HATさん、ありがとうございます。

大まかな、インストール手順は、次の通りです。他のパッケージを、ソースからビルドするのと、同じ手順です。

  1. 関連ツールインストール
  2. インストール済みのNetatalkを削除
  3. Netatalk本体インストール
    1. パッケージダウンロード&展開
    2. configure
    3. make
    4. sudo make install
  4. Netatalk設定
  5. 動作確認

前回と同じパターンです。次の記事を参考にして下さい。

工程1です。

$ sudo apt-get install libdb4.8-dev (CNIDの管理のために必要)
$ sudo apt-get install libssl-dev (uams_dhx.soを使う時に必要)
$ sudo apt-get install libgcrypt11-dev (uams_dhx2.soを使う時に必要)
$ sudo apt-get install libslp-dev (SLPのために必要)
$ sudo apt-get install libavahi-client-dev (Zeroconfのために必要)

SLPは、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。私は、Mac OS 9.2.2のMacを持っている(けど使っていない)ので、設定しています。

LDAP/ACLサポートのために、追加で必要になるパッケージもインストールします。

$ sudo apt-get install libldap2-dev (LDAPのために必要)
$ sudo apt-get install libacl1-dev (ACLのために必要)

ACLに対応させないなら不要です。ACLに対応させるには、Ubuntu側/SnowLeopard側もLDAPに対応させなければならないので、非常に困難です。次の記事をご覧下さい。

本当は、これだけじゃなくて、netatalkでACLを使えるようにするには、Mac OS X側を、LDAPクライアント化する必要があります。この説明は難しいので、また別の機会に…。

工程2は、上記と同じですので省略します。

設定ファイルは、あらかじめmvで退避しておきます。アンインストールの前に、sudo service netatalk stopで、サービスを停止しておいて下さい。

$ cd /etc/default
$ sudo mv netatalk .netatalk.old
$ cd /etc
$ sudo mv netatalk netatalk.old

工程3に入ります。工程3-1も、上記の記事を参考にしてください。ダウンロードするパッケージは、2.2-beta4 (gzip)または(bzip2)をお使い下さい。

パッケージは、~/work/netatalkで展開しています。今回も、bzip2を使いました。~/Downloadsにダウンロードした物を使っています。

$ cd
$ mkdir work
$ cd work
$ mkdir netatalk
$ cd netatalk
$ tar xvjf ~/Downloads/netatalk-2.2-beta4.tar.bz2

工程3-2です。configureします。

$ cd
$ cd work/netatalk/netatalk-2.2-beta4
$ ./configure --enable-debian \ (UbuntuはDebian系なので)
> --enable-srvloc \ (SLPのために必要)
> --prefix=/usr \ (できたファイルは/usr以下に置く)
> --with-pkgconfdir=/etc/netatalk \ (設定ファイル置き場)
> --with-uams-path=/usr/lib/netatalk (ユーザ認証ライブラリ置き場)

SLP(–enable-srvloc)は、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。

configureの結果は、次の様になりました。

Using libraries:
    LIBS = -lpthread  -L$(top_srcdir)/libatalk
    CFLAGS = -I$(top_srcdir)/include -D_U_="__attribute__((unused))" -g -O2 -I$(top_srcdir)/sys
    SSL:
        LIBS   =  -lcrypto
        CFLAGS =  -I/usr/include/openssl
    LIBGCRYPT:
        LIBS   = -lgcrypt
        CFLAGS =
    BDB:
        LIBS   =  -ldb-4.8
        CFLAGS =
    SRVLOC:
        LIBS   =  -lslp
        CFLAGS =
Configure summary:
    Install style:
         debian
    AFP:
         AFP 3.x calls activated:
         Extended Attributes: ad | sys
    CNID:
         backends:  dbd last tdb
    UAMS:
         DHX     ( SHADOW)
         DHX2    ( SHADOW)
         RANDNUM ( SHADOW)
         passwd  ( SHADOW)
         guest
    Options:
         DDP (AppleTalk) support: no
         CUPS support:            no
         SLP support:             yes
         Zeroconf support:        yes
         tcp wrapper support:     no
         quota support:           yes
         admin group support:     yes
         valid shell check:       yes
         cracklib support:        no
         dropbox kludge:          no
         force volume uid/gid:    no
         Apple 2 boot support:    no
         ACL support:             yes

次の工程3-3は、コンパイルです。

$ cd
$ cd work/netatalk/netatalk-2.2-beta4
$ make

コンパイルが終わった後に、./etc/afpd/afpd -Vで、バージョンと各種設定ファイルがインストールされる場所を確認しておきます。

$ cd
$ cd work/netatalk/netatalk-2.2-beta3
$ ./etc/afpd/afpd -V
afpd 2.2-beta4 - 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:
        AFP3.x support:	Yes
        TCP/IP Support:	Yes
DDP(AppleTalk) Support:	No
         CNID backends:	dbd last tdb
           SLP support:	Yes
      Zeroconf support:	Yes
  TCP wrappers support:	No
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	No
        Dropbox kludge:	No
  Force volume uid/gid:	No
           ACL support:	Yes
            EA support:	ad | sys
          LDAP support:	Yes
             afpd.conf:	/etc/netatalk/afpd.conf
   AppleVolumes.system:	/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:	/etc/netatalk/AppleVolumes.default
    afp_signature.conf:	/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:	/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:	/etc/netatalk/afp_ldap.conf
       UAM search path:	/usr/lib/netatalk/
  Server messages path:	/etc/netatalk/msg/
              lockfile:	/var/lock/afpd

工程3-4は、インストールです。

$ cd
$ cd work/netatalk/netatalk-2.2-beta4
$ sudo make install

念のため、インストールされたバージョンを確認します。

$ /usr/sbin/afpd -V
afpd 2.2-beta4 - 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:
        AFP3.x support:	Yes
        TCP/IP Support:	Yes
DDP(AppleTalk) Support:	No
         CNID backends:	dbd last tdb
           SLP support:	Yes
      Zeroconf support:	Yes
  TCP wrappers support:	No
         Quota support:	Yes
   Admin group support:	Yes
    Valid shell checks:	Yes
      cracklib support:	No
        Dropbox kludge:	No
  Force volume uid/gid:	No
           ACL support:	Yes
            EA support:	ad | sys
          LDAP support:	Yes
             afpd.conf:	/etc/netatalk/afpd.conf
   AppleVolumes.system:	/etc/netatalk/AppleVolumes.system
  AppleVolumes.default:	/etc/netatalk/AppleVolumes.default
    afp_signature.conf:	/etc/netatalk/afp_signature.conf
      afp_voluuid.conf:	/etc/netatalk/afp_voluuid.conf
         afp_ldap.conf:	/etc/netatalk/afp_ldap.conf
       UAM search path:	/usr/lib/netatalk/
  Server messages path:	/etc/netatalk/msg/
              lockfile:	/var/lock/afpd

工程4です。各種設定をします。

新しくインストールされた設定ファイルと、前回の設定ファイルとを比較して、違いを確認しておいた方が良いと思います。

$ cd /etc/default
$ diff .netatalk.old netatalk
$ cd /etc/netatalk
$ diff ../netatalk.old/AppleVolumes.default AppleVolumes.default
$ diff ../netatalk.old/AppleVolumes.system AppleVolumes.system
$ diff ../netatalk.old/afpd.conf afpd.conf
$ sudo cp -p ../netatalk.old/* .

/etc/default/netatalk, /etc/netatalk/AppleVolumes.default, /etc/netatalk/afp_ldap.confの設定は、次の記事をご覧下さい。

/etc/netatalk/afpd.confには、次の内容を設定しました。かなりのログファイルを残すようにしてあります。2.2は、beta版ということとACLの挙動を見たいので、ログレベルを最大にしています。

- -tcp -noddp -uamlist uams_guest.so,.so,uams_dhx.so,uams_dhx2.so \
-maccodepage MAC_JAPANESE -unixcodepage UTF8 \
-slp \ (SLPを使う場合に指定)
-setuplog "Default log_maxdebug /var/log/netatalk/default.log" \
-setuplog "Core log_maxdebug /var/log/netatalk/core.log" \
-setuplog "Logger log_maxdebug /var/log/logger.log" \
-setuplog "CNID log_maxdebug /var/log/netatalk/cnid.log" \
-setuplog "AFPDaemon log_maxdebug /var/log/netatalk/afp.log"

SLP(-slp)は、Mac OS X 10.2よりも古いOS(Mac OS 9とか)に、ファイルサーバを知らせる仕組みですので、通常は不要です。

なお、上記の設定だと、ログファイルを置くディレクトリを作っておく必要があります。

$ sudo mkdir /var/log/netatalk

正直なところ、ログレベルを最大にしても、出てくるメッセージの意味がわかりません…。多分、ソースをわかっていないと、ログの意味がわからないのでしょう。

afpd.confは、一行または継続行で書かなければなりません。次の記事をご覧下さい。

普通の運用なら、次の設定で良いそうです。次の記事のコメント欄をご確認下さい。

ただし、Ubuntu(debian系)の場合は、netatalk.confではなく、/etc/default/netatalkになります。

/etc/netatalk/afp_ldap.confのテスト結果です。LDAP運用している場合のみ、必要です

$ afpldaptest -u john
Start parsing afp_ldap.conf
Finished parsing afp_ldap.conf
afp_ldap.conf is ok. Using simple bind.
Searching user: john
User: john ==> UUID: FFFFEEEE-DDDD-CCCC-BBBB-AAAA000007D0

いよいよ、工程5に移ります。設定が終わったら、netatalkを起動します。

$ sudo service netatalk start
Starting Netatalk services (this will take a while):  cnid_metad afpd.

Mac OS X側での動作確認です。Mac OS Xは、Snow Leopard(10.6.7)です。

  • Finderから、サーバが見えるか?
  • フォルダを作れるか?
  • ファイルをコピーできるか? (Mac→Ubuntu、Ubuntu→Mac)
  • ファイルのパーミッションとタイムスタンプはどうか?
  • 拡張属性はついているか?
  • ファイル名の確認(日本語、禁止文字、長いファイル名)
  • TimeMachineのディスクに表示されるか?

全項目確認して、大丈夫でした。

ACLは、前回から進捗がありません。Snow Leopardでエラー無く設定できる物の、設定されていることがSnow Leopard側ではわかりません。

SnowLeopard$ cd
SnowLeopard$ echo "aaa" > acl.txt
SnowLeopard$ chmod +a "everyone deny delete" acl.txt

で、ls -leで見てみると、

SnowLeopard$ ls -le acl.txt
-rw-r--r--  1 john  example  4 Mar 13 17:59 acl.txt

"+"マークが付いていませんし、Finderの「情報を見る」でも、変化がありません。

ところが、同じファイルをUbuntu側で見ると、次の様になります。

Ubuntu$ ls -l acl.txt
-rw-r--r--+ 1 john example 4 2011-03-13 17:59 acl.txt
Ubuntu$ getfacl acl.txt
# file: acl.txt
# owner: john
# group: example
user::rw-
group::r--
mask::r--
other::r--

"+"マークが付いているし、"mask"属性があります。ACL属性が付いたみたいです。

謎です。研究しなくては…。

【関連記事】

Posted by お市のかた