samba構築

最近マトモに自宅開発していないな、と思い、
php+mysql による簡易 blog を自宅サーバに構築しようとした。

▼DynamicDNS
過去、登録したこともあって、家サーバプロジェクト
https://ieserver.net/cgi-bin/dip.cgi
を訪れ、

ドメイン名 dukkie.or.tp
を更新。

だが途中で(笑)「sambaを自宅で作ったことないなあ」、
「また自分で構築したことがないなあ」と思い急遽構築。

【目的】
・家庭内LANのゾーン 192.168.1.0/255.255.255.0から
 ファイルサーバでディスクを共有する。

samba は以下 2 プログラムから構成される。
・smbd = サーバとクライアント間でファイルのやり取りを行うプログラム
・nmbd = ネットワーク上での名前解決を行うプログラム

  • > samba はTCP/IPを使って通信を行うため、

Windows クライアントがわで TCP/IP を ON にしておく必要がある。


【設定手順】

1) /etc/services に以下のエントリがあることを確認

swat 901/tcp

2) 起動設定
2-1) Samba と IP 上での NetBIOS 名での名前解決サービス(nmb)の起動設定。j

# chkconfig smb on
# chkconfig --list smb
smb 0:off 1:off 2:off 3:on 4:off 5:on 6:off
# chkconfig nmb on
# chkconfig --list nmb
nmb 0:off 1:off 2:off 3:on 4:off 5:on 6:off

2-2) Swat の起動設定。
/etc/xinetd.d/swat を編集

# SWAT is the Samba Web Administration Tool.
service swat
{
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/sbin/swat
only_from = 127.0.0.1
only_from = 192.168.1.0/24
log_on_failure += USERID
disable = no
}

2-3) smb.conf の設定
/etc/samba/smb.conf
デフォルトのままとしておく→あとでSWAT で編集する。

3) samba パスワードの設定
smbpasswd ユーザ名
で設定する。
エラーメッセージが出るが何とか設定できる。

4) samba の起動

# /etc/init.d/smb start
Starting Samba SMB daemon done
# /etc/init.d/nmb start
Starting Samba NMB daemon

5) FW の設定

YaSTtcp ポート許可。
TCPサービス」に「139 445 901」と設定ポートを空白で区切り設定

# /etc/init.d/xinetd restart

6) SWAT 使用 で、Webブラウザ経由管理

SWAT=Samba Web Administration Tool

http://192.168.1.1:901/
でアクセスして管理する。

6-1) ホームディレクトリへ接続

# smbpasswd -a XXXXXX

で samba パスワード設定。

Windows [マイ ネットワーク]で、samba サーバを認識、
profiles ファイルに接続する。

6-2) グループ共有
linux 上でグループ作成

# groupadd fam_file

・共有ディレクトリ権限設定。

# chown .fam_file /u03/files
# chmod g+rw /u03/files

・SWAT で共有ディレクトリを指定する。
# SWAT が文字化けする場合。
/etc/samba/smb.conf の
[global]に、以下を指定。

unix charset = Shift_JIS
display charset = Shift_JIS

swat の [SHARES]アイコンをクリックし、
path に共有ディレクト
read only になっていないことを確認し
「設定変更」ボタンを押す。

参照:
http://www.samba.gr.jp/doc/contrib/begin_samba2.0.html
http://www.aconus.com/~oyaji/suse9.2/samba_suse9.2.htm

▼ htaccess の設定。

/home/www/htdocs/.private/以下を家族のディレクトリに。

# vi .htaccess
AuthUserFile /home/www/htdocs/.private/.htpasswd
AuthGroupFile /dev/null
AuthName "Family Secret Area"
AuthType Basic

require valid-user

<Files ~ "^.(htpasswd|htaccess)$">
    deny from all
</Files>

# htpasswd2 ./.htpasswd wife
New password:
Re-type new password:
htpasswd2: password verification error