2013年4月24日水曜日

iMac-12 Samba3

MacOSX 10.7.x(Lion)以降になってから、Android端末のESファイルエクスプローラからはユーザ名でファイル共有できなくなっていた。
brew の samba3 をインストールした。

(1)標準のファイル共有をオフにする
システム環境設定>ファイル共有:切
(2)netbiosdが動いているならオフにする
もし、</usr/local/Cellar/samba/3.6.8/var/log.nmbd>が
  lib/util_sock.c:667(open_socket_in)
  bind failed on port 137 socket_addr = 0.0.0.0.
  Error = Address already in use
になるならば、
# lsof -nP -iUDP|grep netbiosd を見て、
netbiosd   71       _netbios    3u  IPv4 0x9c1852d416cc8b7      0t0  UDP *:138
netbiosd   71       _netbios    4u  IPv4 0x9c1852d416cca3f      0t0  UDP *:137
であれば、netbiosdを無効にする。
# launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist
(3)% brew install samba
</usr/local/Cellar/samba/3.6.8/etc/smb.conf>を用意する。
[global]
   workgroup = WORKGROUP
   server string = Samba 3.6.8
   passdb backend = tdbsam
   log level = 1
[homes]
   comment = Home Directories
   browseable = no
   read only = no
   create mask = 0644
   directory mask = 0775
   valid users = %S
% testparmを確認。
・ユーザを追加する
# /usr/local/bin/smbpasswd -a username
New SMB password:
Retype new SMB password:
Forcing Primary Group to 'Domain Users' for username
Forcing Primary Group to 'Domain Users' for username
Added user username.
このsmbpasswdで/usr/local/Cellar/samba/3.6.8/private/passdb.tdbが変化したようだ。
(4)sambaの起動を考える
あまり美しくないが、以下の独自</usr/local/sbin/samba>スクリプトを使うことにする。
#! /bin/sh
#$Id: /usr/local/sbin/samba,v 1.0 2013-04-24 14:49:49+09 root$
if [ `whoami` != "root" ]; then
   echo "Must be root."
   exit 1
fi
case "$1" in
   start)
      /usr/local/sbin/nmbd -D
      /usr/local/sbin/smbd -D
      echo "Start samba"
      ps -afx|grep -v egrep|egrep '^  UID|/usr/local/sbin/.mbd'
      ;;
   stop)
      killall smbd
      killall nmbd
      ;;
   status)
      echo "Status samba"
      ps -afx|grep -v egrep|egrep '^  UID|/usr/local/sbin/.mbd'
      echo "----------------------------------------------------"
      (cd /usr/local/Cellar/samba/3.6.8/var;ls -lh log.?mbd)
      echo "#################################################"
      echo "$ tail /usr/local/Cellar/samba/3.6.8/var/log.nmbd"
      tail /usr/local/Cellar/samba/3.6.8/var/log.nmbd
      echo "#################################################"
      echo "$ tail /usr/local/Cellar/samba/3.6.8/var/log.smbd"
      tail /usr/local/Cellar/samba/3.6.8/var/log.smbd
      echo "#################################################"
      /usr/local/bin/smbstatus
      ;;
   *)
      echo "Usage: $0 start|stop|status" >&2
      exit 3
      ;;
esac
exit 0
・このsambaスクリプトを起動時に以下のようにして動かす。
#私は .zprofile に追加している。
  ps ax|grep -v grep|grep /usr/local/sbin/smbd
  if [ $? != 0 ]; then
     sudo /usr/local/sbin/samba start
  fi
・現状では、これらにて、MacOSX10.6.x Snow Leopard時代と同様に、Android端末のESファイルエクスプローラからユーザ名でファイル共有できるようになった。

0 件のコメント:

コメントを投稿