FreeBSDでもNetatalkとSambaとの共存が出来てた
NetatalkとSambaとの統合について、ずっとHATさんが追いかけています。
私も、微力ながら、実験を続けていました。
NetatalkとSambaとの共存はもう一息
Samba46を試す
Samba46に次のパッチが取り入れられたとの事で、Samba46を試してみたいと思いました。
でも、pkgには、samba44までしか無いのです。
# pkg search samba p5-Samba-LDAP-0.05_2 Manage a Samba PDC with an LDAP Backend p5-Samba-SIDhelper-0.0.0_3 Create SIDs based on G/UIDs samba-nsupdate-9.8.6_1 nsupdate utility with GSS-TSIG support samba-virusfilter-0.1.3_1 On-access anti-virus filter for Samba samba36-3.6.25_3 Free SMB and CIFS client and server for Unix samba36-libsmbclient-3.6.25_2 Shared lib from the samba package samba36-nmblookup-3.6.25 NetBIOS Name lookup tool samba36-smbclient-3.6.25 Samba "ftp-like" client samba42-4.2.14 Free SMB/CIFS and AD/DC server and client for Unix samba43-4.3.13_1 Free SMB/CIFS and AD/DC server and client for Unix samba44-4.4.8_1 Free SMB/CIFS and AD/DC server and client for Unix
残念! と思っていたら、Samba46をFreeBSDのportを作ってくださった方が現れました! ありがとうございます。
@HARAOKA さん
— 内藤 祐一郎 (@yuichironaito) March 17, 2017
samba46 の port を作ってみたので試してもらえますか?https://t.co/rVOQIHF8KP
から ports tree を git clone してください。
無事に、ビルドと起動できたのですが、拡張属性が正しく扱われ無いようです。
Samba44を試す
試しに、Samba44をサーバにして、OS Xでマウントすると、ちゃんと拡張属性がついた状態で見えます。
当然、Samba44の拡張属性は正しい内容になっています。Samba46には、netatalk用の拡張属性が一切付いていません。Samba44とSamba46は、同じsmb4.confを使っています。
# lsextattr user * ICONandEA by AFP.txt org.netatalk.Metadata com.apple.metadata:kMDItemFinderComment com.apple.TextEncoding ICONandEA by Samba44.txt DOSATTRIB org.netatalk.Metadata com.apple.metadata:kMDItemFinderComment com.apple.TextEncoding ICONandEA by Samba46.txt DOSATTRIB
実験には、HATさんのファイルを使わせていただきました。ありがとうございます。
@oichinokata 私が長年使っているテスト用ファイルで確認していただけるでしょうか。https://t.co/Dm720MCYPu
— HAT (@HAT0001) January 5, 2016
バグが残っているはずのSamba44で、どうして拡張属性がきちんと扱われているのか、調べてみました。こっそりと、パッチ(net/samba44/files/patch-source3__modules__vfs_fruit.c)が当たっているようです。
--- source3/modules/vfs_fruit.c.orig 2016-12-28 02:48:27.478460000 +0000
+++ source3/modules/vfs_fruit.c 2016-12-28 02:48:58.141967000 +0000
@@ -105,7 +105,7 @@
* This is hokey, but what else can we do?
*/
#define NETATALK_META_XATTR "org.netatalk.Metadata"
-#if defined(HAVE_ATTROPEN) || defined(FREEBSD)
+#if defined(HAVE_ATTROPEN)
#define AFPINFO_EA_NETATALK NETATALK_META_XATTR
#define AFPRESOURCE_EA_NETATALK "org.netatalk.ResourceFork"
#else
この修正は、次のパッチとほぼ同じ内容です。
設定ファイル
なお、afp.confとsmb4.confは、HATさんのページを参考にさせていただいております。ありがとうございます。
/usr/local/etc/afp.conf
;
; Netatalk 3.x configuration file
;
[Global]
mac charset = MAC_JAPANESE
afpstats = yes
log file = /var/log/netatalk.log
vol dbpath = /export/netatalk/CNID
vol preset = my_default_values
[my_default_values]
ea = samba
veto files = /Thumbs.db/desktop.ini/lost+found/
delete veto files = Yes
file perm = 0660
directory perm = 0770
[Homes]
basedir regex = /usr/home
home name = $u-paralles
spotlight = yes
file perm = 0600
[b]
path = /export/b
spotlight = yes
/usr/local/etc/smb4.conf
testparmの結果です。
# Global parameters
[global]
bind interfaces only = Yes
dos charset = CP932
interfaces = em0 192.168.1.0/24
server string = Freebsd SMB3 Server
local master = No
log file = /var/log/samba4/log.%m
max log size = 50
load printers = No
unix extensions = No
map to guest = Bad User
passwd chat = * %n\n * %n\n *
passwd program = /usr/bin/passwd %u
security = USER
unix password sync = Yes
dns proxy = No
wins support = Yes
streams_xattr:store_stream_type = no
streams_xattr:prefix = user.
fruit:encoding = native
idmap config * : backend = tdb
delete veto files = Yes
hide files = /.DS_Store/Network Trash Folder/TheFindByContentFolder/TheVolumeSettingsFolder/Temporary Items/.TemporaryItems/.VolumeIcon.icns/Icon?/.FBCIndex/.FBCLockFolder/
map archive = No
store dos attributes = Yes
veto files = /lost+found/
kernel oplocks = Yes
ea support = Yes
map acl inherit = Yes
hosts allow = 127.0.0.0/8 192.168.1.0/24
hosts deny = all
read only = No
vfs objects = catia fruit streams_xattr
[homes]
comment = Home Directories
browseable = No
oplocks = No
[b]
comment = b
path = /export/b
force create mode = 0660
force directory mode = 0770
guest ok = Yes
ついでの情報ですが、今まで利用していたsmb4.confに間違いがありました。log.nmbdを見ていたら、次のメッセージが出ていました。
Status: "nmbd: No local IPv4 non-loopback interfaces available
次のページに解決方法が載っていました。Thank you! smb4.confのinterfacesの書き方が間違っていたためでした。
このページに従って、loop back I/F (lo0)も追加したら、次のメッセージが出るようになってしまいました。
queue_query_name: interface 1 has NULL IP address !
次のページに解決方法が載っていました。Thank you! smb4.confのinterfacesに、loop back I/F (lo0)を追加したためでした。lo0を削除したら、解決しました。
Parallelsは便利
この実験のために、ParallelsにFreeBSD11をインストールしたのでした。
Parallels12にFreeBSD11をインストール[amazonjs asin="B01KUAIBBE" locale="JP"]
ディスカッション
pkgでsamba44入れたんですが、
入れた直後は、
/usr/local/etc/smb4.conf
が存在しないみたいです。
どこかのディレクトリにサンプルがあるんでしょうか。
HATさんへ、コメントありがとうございます。
twetterでお返事しましたが、わたしはsamba3の物を参考にして修正しました。
HATさんへ、コメントありがとうございます。
twitterでお返事させていただきましたが、私はsamba3の物を参考にして、修正して使っています。
Interoperation of Netatalk and Samba on FreeBSD
http://netatalk.sourceforge.net/wiki/index.php/Interoperation_of_Netatalk_and_Samba_on_FreeBSD
HATさんへ、再びコメントありがとうございます。
英語版インストールページを書かれたのですね。すごいです。