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 の設定
YaST で tcp ポート許可。
「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]に、以下を指定。
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