So-net無料ブログ作成
検索選択

NetatalkにまつわるPAMの呪い (解決済) [Netatalk and Samba]

最近のnetatalkはPAMに呪われていましたが、全て解決しました。
3つの問題があって、それぞれ原因が別ですが、どれもPAMが関係していました。
  1. 接続しようとすると「サーバのバージョンはサポートされていません」と出る
  2. Fedora 17のnetatalkボリュームをアンマウントできず、Finderが固まりMacをshutdownできない
  3. Ubuntu (Server版)のnetatalkにMacから接続するとafpdがSignal 11で落ちる


netatalkをPAM対応でビルドした場合、以下のようなUAMモジュールがインストールされます。
uams_passwd.so       clear text認証で普通のパスワードを使う
uams_pam.so          clear text認証でPAMを使う
uams_dhx_passwd.so   DHX認証で普通のパスワードを使う
uams_dhx_pam.so      DHX認証でPAMを使う
uams_dhx2_passwd.so  DHX2認証で普通のパスワードを使う
uams_dhx2_pam.so     DHX2認証でPAMを使う

そして、以下のようなシンボリックが作られます。
uams_clrtxt.so -> uams_pam.so
uams_dhx.so    -> uams_dhx_pam.so
uams_dhx2.so   -> uams_dhx2_pam.so


3つの問題はPAMが関係しているので、netatalkの設定ファイルにてPAMを使わないように設定すると回避できます。つまり、以下のように書換えます。
uams_clrtxt.soをuams_passwd.soに書換える
uams_dhx.soをuams_dhx_passwd.soに書換える
uams_dhx2.soをuams_dhx2_passwd.soに書換える

この方法は単純で便利ですが、あまり本質的ではありません。PAMが必要なサーバでは困ります。
本質的な方法は以下のとおり。

接続しようとすると「サーバのバージョンはサポートされていません」と出る
これはnetatalkのバグです。
make installの動作手順が間違っています。UAM用のディレクトリを作る前に、そのディレクトリの中にシンボリックリンクを作ろうとしています。当然ながらシンボリックリンクの作成に失敗します。
上で説明したシンボリックリンクを手動で作れば直ります。
netatalk 2.2.4及び3.0で修正済みです。

Fedora 17のnetatalkボリュームをアンマウントできず、Finderが固まりMacをshutdownできない
どうやらPAMを閉じる関数pam_close_session()がうまく動いていないらしい。原因はPAMかsystemdにあるのではないか、とのことです。
パッケージnetatalk-2.2.2-3.fc17にて対応がとられています。
netatalk 2.2.4及び3.0で修正済です。

Ubuntu (Server版)のnetatalkにMacから接続するとafpdがSignal 11で落ちる
この問題はDesktop版ではなくServer版だけで報告されています。
PAMモジュールpam_smbpass.soが原因であることが判明しています。libpam_smbpassパッケージを削除すると解決します。
PAMの共通設定ファイル/etc/pam.d/common-authに以下のような行があるので、この行を削除する方法もあります。
auth   optional   pam_smbpass.so migrate

この行はDesktop版には存在せず、Server版だけにあります。だからServer版だけで発症します。
netatalk 2.2.4及び3.0.1で修正済みです。
nice!(0)  トラックバック(0) 

nice! 0

トラックバック 0

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。