Last Update: "2009/01/01 21:31:27 makoto"

samba

Samba は Windows 用のファイルサーバ機能を提供します。 これには次の三つの部品が含まれています。
smbd File サーバ
nmbd 名前解決
winbindd アカウント情報サーバ (Windows -> Unix)

pkgsrc では次の三つが用意されています。通常は net/samba の方を使います。 (2008/08)
pkgsrc directory version
pkgsrc/net/samba2
pkgsrc/net/samba20
pkgsrc/net/samba samba-3.0.30
pkgsrc/net/ja-samba (obsolete)
pkgsrc/net/gtksamba

設定

設定は /usr/pkg/etc/samba/smb.conf に行います。 ここは次のようになっています。
drwx------  2 root  wheel   512 May  4 23:46 private/
-rw-r--r--  1 root  wheel  9986 May  4 23:46 smb.conf
更に private/ の下には簡単な方式の認証文字列があります。
-rw-------  1 root  wheel  8192 May  5 09:59 secrets.tdb
-rw-------  1 root  wheel     0 May  5 09:59 smbpasswd
これを設定するには smbpasswd (/usr/pkg/bin/smbpasswd) を使いますが、root 権限が必要です。
ttyp0:makoto@mini 10:45:56/050505(...net/samba)> sudo smbpasswd -L -a username New SMB password: Retype new SMB password: Added user username. ttyp0:makoto@mini 10:46:11/050505(...net/samba)>
また、上の設定のうち smb.conf については、 その記述例は /usr/pkg/share/examples/samba/ に置いてあります。設置時には、その中の smb.conf.default が写してありますから、 いきなり変更してしまっても、簡単に元に戻せます。 /usr/pkg/share/examples/samba/ には他にも次のようなものがあります。
名前 shell?
adduser.sh* YES
deluser.sh* YES
mknissmbpasswd.sh* YES smbpasswd → smbpasswd NIS+ table
mknissmbpwdtbl.sh* YES smbpasswd と smb group を NIS+ に作成
mksmbpasswd.sh* YES SMB password file を作成
samba.schema
smb.conf.default /usr/pkg/etc/samba/smb.conf に写して変更
updatesmbpasswd.sh* YES
smb.conf
smb.conf 変更例
既に何か関連のものが動いているかどうかは smbd nmbd というような名前の処理(process) があるかどうかを ps ax 等で調べれば分ります。
/etc/rc.d
以前の版 2.2.8 くらいでは /etc/rc.d の下におくものは /usr/pkg/etc/rc.d/ に用意されていました。しかし最近は /usr/pkg/share/examples/rc.d に 置いてあります。

これらを /etc/rc.d の下に次のように 写して、機械の起動時の設定用とします。

cd /usr/pkg/share/examples/rc.d cp nmbd /etc/rc.d/ cp smbd /etc/rc.d/ cp samba /etc/rc.d/ cp winbindd /etc/rc.d/
あるいは全部を一度に、次のように写す方が簡単です。
cd /usr/pkg/share/examples/rc.d cp nmbd smbd samba /etc/rc.d/
これらを実際に有効にするには /etc/rc.conf に 次のように書いておきます。
smbd=YES
nmbd=YES
samba=YES

起動

/etc/rc.conf に設定する前なら、
# env smbd=YES nmbd=YES /etc/rc.d/samba start # env smbd=YES nmbd=YES /etc/rc.d/samba restart
などとします。設定が済んでいれば、単に
# /etc/rc.d/samba start
などが使えます。

add user

上で passwd を設定した他に、更に user を追加する方法は次のようにします。
sudo pdbedit -a username

debug

# /usr/pkg/sbin/nmbd -d 50
などとすると、/var/log/log.nmbd にこまかい記録が残ります。 smbd の方も同様です。 powerpc の場合、次のような問題があります。
ttyp0:root@kuro-hg 10:02:04/061011(~)# /etc/rc.d/samba start
Starting nmbd.
/usr/pkg/sbin/nmbd: Unsupported relocation type 6 in non-PLT relocations

Starting smbd.
/usr/pkg/sbin/smbd: Unsupported relocation type 6 in non-PLT relocations
Following patch fixes this problem
Index: Makefile
===================================================================
RCS file: /e/s900/cvsync/pkgsrc/net/samba/Makefile,v
retrieving revision 1.165
diff -u -r1.165 Makefile
--- Makefile    1 Oct 2006 14:58:38 -0000       1.165
+++ Makefile    11 Oct 2006 02:11:43 -0000
@@ -57,6 +57,7 @@
 
 CONFIGURE_ARGS+=       --with-swatdir=${PREFIX}/share/samba/swat
 CONFIGURE_ARGS+=       --with-libsmbclient
+CONFIGURE_ARGS+=       --disable-pie
 
 .include "../../converters/libiconv/buildlink3.mk"
 CONFIGURE_ARGS+=       --with-libiconv=${BUILDLINK_PREFIX.iconv}

problem

samba-3.0.32nb1 SMB/CIFS protocol server suite
[2009/01/01 21:27:07, 0] lib/interface.c:load_interfaces(201)
  ERROR: Could not determine network interfaces, you must use a interfaces config line
adding following line fix the problem
interfaces = 192.168.1.0/24