CentOS 5.4でファイル共有サーバー(Samba)の構築
CentOS 5.4にSambaを導入し、サーバーとWindowsクライアント間でのファイル共有を実現する。
1. 要件と仮定
今回の要件は以下の通り。
- ユーザーが自分のホームディレクトリへSambaからアクセスできる様にする。
- ユーザー認証にはLDAPを使用する(LDAP環境の構築についてはこちら)。
- LDAPを使用する場合、ホームディレクトリが存在しない場合がある。その場合、自動でホームディレクトリを作成する。
- 今回のネットワークは小規模なため、ワークグループで運用する。
- ゴミ箱機能を有効にする。
- プリンタの共有は行わない。
便宜上、設定等について下記の通り仮定する。
2. インストール
今回もyumからインストールする。
[root@localhost ~]# yum -y install samba
2009年12月15現在、yumでインストールした場合のバージョンは 3.0.33-3.15 だった。以降の手順の確認は本バージョンで行っており、以前・以降のバージョンでは異なる場合があるので注意してほしい。
3. Sambaの設定
Sambaの設定ファイル(/etc/samba/smb.conf)を編集する。各項目については日本Sambaユーザ会による翻訳が読みやすい。以下に、Sambaをワークグループのドメインマスターブラウザとして機能させる場合の設定例を示す。
[root@localhost ~]# vim /etc/samba/smb.conf [global] # # network settings # workgroup = WORKGROUP netbios name = HOGE server string = Hoge, File Sharing Server interfaces = 192.168.78.0/24 hosts allow = 192.168.78.0/24 bind interfaces only = yes domain master = yes local master = yes prefered master = yes wins support = yes remote announce = 192.168.78.255 remote browse sync = 192.168.78.255 os level = 128 time server = no lm announce = no min protocol = COREPLUS socket options = TCP_NODELAY IPTOS_LOWDELAY name resolve order = wins lmhosts host bcast # # auth settings # security = user map to guest = Never root directory = / client ntlmv2 auth = yes client lanman auth = no client plaintext auth = no passdb backend = ldapsam:ldap://127.0.0.1/ username map = /etc/samba/smbusers obey pam restrictions = yes # # log settings # syslog = 1 syslog only = yes # # charset settings # dos charset = cp932 unix charset = utf-8 display charset = utf-8 # # LDAP settings # ldap ssl = off ldap suffix = dc=example,dc=jp ldap user suffix = ou=People ldap group suffix = ou=Group ldap idmap suffix = ou=Idmap ldap machine suffix = ou=Machine ldap admin dn = cn=Manager,dc=example,dc=jp ldap passwd sync = yes # # filesystem settings # create mask = 0644 force create mode = 0444 force security mode = 0400 force directory mode = 0755 hide special files = yes hide unreadable = yes delete veto files = yes map archive = no mangled names = no dos filemode = no # # printer settings # load printers = no # # Home Directories # [homes] comment = %U's Home Directory writeable = yes browseable = no invalid users = root nobody vfs objects = recycle recycle:repository = .recycle recycle:keeptree = yes recycle:versions = yes recycle:touch = no recycle:maxsize = 0 recycle:exclude = *.tmp ~$*
同一ネットワーク上にドメインマスターブラウザが存在する場合はドメインマスターブラウザとしてはいけない。ドメインマスターブラウザとしない場合は上記からいくつかの設定を変更する。
- domain master = yes ← no に変更
- wins support = yes ← no に変更
- remote announce = 192.168.78.255 ← 削除、またはコメントアウト
- remote browse sync = 192.168.78.255 ← 削除、またはコメントアウト
- os level = 128 ← 64 に変更
- wins server = WINSサーバーのアドレス ←追加する
また、Sambaの設定についてはSWATというGUIツールが存在する。そういったツールを使って管理するのもいいかもしれない。
設定が完了したら、LDAPの管理用パスワードをSambaに登録する。
[root@localhost ~]# smbpasswd -W Setting stored password for "cn=Manager,dc=example,dc=jp" in secrets.tdb New SMB password: (LDAPの管理用パスワードを入力) Retype new SMB password: (LDAPの管理用パスワードをもう一度入力)
ここまで設定したらSambaサービスを起動し、次回から自動で起動するように設定する。
[root@localhost ~]# service smb start [root@localhost ~]# chkconfig smb on [root@localhost ~]# chkconfig --list smb smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off
4. smbldap-toolsによる初期設定
LDAPとSambaの連携を初めて行う場合は続けてsmbldap-toolsを導入し、初期設定を行う必要がある。すでに他のホストで行っている場合は必要ないので、別記事にまとめた。