○ Sambaのインストール

*Windows,Linuxのファイル共有のためのサーバを構築します
*samba-3.5.4をソースからインストールします
*smbfsはCentOSではモデュールとして組み込まれていません
*CIFSをモデュールとして組み込んでいます
*smbmountはこのバージョンでは外されています
*make はメンテナンスマシンで行っています

**以降はコメントです
*パッケージの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*Enterキーを省略します

*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます

○関連サイト

:samba-3.5.4.tar.gz (http://www.samba.org/)

○参照ファイル

パッケージの追加
最初の設定 (Xen)

○パッケージビルド環境

:OS CentOS 5.5
:selinux disabled or permissive
:インストール先 
:作業 /usr/src
:言語 LANG=ja_JP.UTF-8
:ユーザー rootで実行

○インストール環境
:OS CentOS 5.5
:selinux disabled or permissive
:インストール先 
:作業 /etc/samba
:言語 LANG=en_US.UTF-8
:ユーザー rootで実行
:workgroup COSMOS
:netbios name saturn
:IPaddress 192.168.0.22

*メンテナンスの場合は一般ユーザから行います



○samba-3.5.4

○Buildに必要な開発パッケージ

*samba-3.5.4/packaging/RHEL/samba.specファイルに記述されているものです

BuildRequires: pam-devel, readline-devel, fileutils, libacl-devel,
openldap-devel, krb5-devel, cups-devel, keyutils-libs-devel

○ソースの展開・ビルド

*samba-3.5.4/packaging/RHEL/samba.specファイルを参考にしています

# cd /usr/src
# tar zxvf samba-3.5.4.tar.gz
# chown -R root:root samba-3.5.4
# cd samba-3.5.4/source3
# make clean
./configure CC="gcc" CFLAGS="-O2 -march=pentium3" \
--prefix=/usr/local \
--localstatedir=/var \
--with-configdir=/etc/samba \
--with-modulesdir=/usr/local/lib/samba \
--with-pammodulesdir=/lib/security \
--with-lockdir=/var/lib/samba \
--with-logfilebase=/var/log/samba \
--with-piddir=/var/run \
--with-privatedir=/etc/samba \
--with-swatdir=/usr/local/share/swat \
--with-shared-modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2 \
--with-acl-support \
--with-ads \
--with-automount \
--with-cifsumount \
--with-cifsupcall \
--with-cluster-support=auto \
--with-dnsupdate \
--with-fhs \
--with-libsmbclient \
--with-libsmbsharemodes \
--with-libtalloc \
--with-libtdb \
--with-pam \
--with-pam_smbpass \
--with-quotas \
--with-sendfile-support \
--with-syslog \
--with-utmp \
--with-winbind

*レイアウトの確認

# make showlayout
Samba will be installed into:
  prefix:      /usr/local
  bindir:      /usr/local/bin
  sbindir:     /usr/local/sbin
  libdir:      /usr/local/lib
  modulesdir:  /usr/local/lib/samba
  vardir:      /var
  mandir:      /usr/local/share/man
  privatedir:  /etc/samba
  configdir:   /etc/samba
  lockdir:     /var/lib/samba
  statedir:    /var/lib/samba
  cachedir:    /var/lib/samba
  piddir:      /var/run
  swatdir:     /usr/local/share/swat
  datadir:     /usr/local/share
  codepagedir: /usr/local/lib/samba

*コンパイル・インストール

# make
# make uninstall
# make install

*設定ファイル・起動ファイルのコピー

# cd ../packaging/RHEL/setup
# cp samba.log /etc/logrotate.d/samba
# cp samba.pamd /etc/pam.d/samba
# cp samba.sysconfig /etc/sysconfig/samba
# cp {smb.conf,smbprint,smbusers} /etc/samba
# cp smb.init /etc/rc.d/init.d/smb
# cp swat /etc/xinetd.d
# cp winbind.init /etc/rc.d/init.d/winbind

# cd /usr/src
# tar cf samba-3.5.4-100625.tar samba-3.5.4/
# bzip2 samba-3/5/4-100625.tar

○キャッシュ情報の更新と確認

*/usr/local/libの設定がされているなら、ldconfigのみ実行します

# echo /usr/local/lib >> /etc/ld.so.conf.d/usrlocal.conf
# ldconfig
# ldconfig -p | grep smb



○samba-3.5.4の設定

○smb.confの設定

:/etc/samba/smb.conf

*青色 printerサーバとして使わない場合
緑色 ごみ箱の設定 ごみ箱機能を有効にしています
*初めてファイルをごみ箱に移動する時に .recycleディレクトリが作られます
*ユーザディレクトリのパーミッションに注意すること

[global]
    dos charset = CP932
    unix charset = UTF-8
    display charset = UTF-8
    workgroup = COSMOS
    netbios name = saturn
    server string = Samba Server
    hosts allow = 192.168.0. 127.
    hosts deny = 192.168.0.21
    printing = bsd
    load printers = no
    disable spoolss = yes
    log file = /var/log/samba/%m.log
    max log size = 50
    security = user
    encrypt passwords = yes
    username map = /etc/samba/smbusers
    name resolve order = lmhosts host wins bcast
    dns proxy = no
    ldap ssl = no
    passdb backend = tdbsam
    client NTLMv2 auth = yes
    client plaintext auth = no
[homes]
    comment = Home Directories
    browseable = no
    writable = yes
    create mask = 0644
    directory mask = 0755
    valid users = %U
    vfs objects = recycle
    recycle:exclude = *.tmp *~
    recycle:maxsize = 0
    recycle:touch = no
    recycle:keeptree = no
    recycle:repository = .recycle
[public]
    path = /home/samba/public
    writable = yes
    create mask = 0666
    directory mask = 0777
    guest only = yes
    guest ok = yes
    vfs objects = recycle
    recycle:exclude = *.tmp *~
    recycle:maxsize = 0
    recycle:touch = no
    recycle:versions = yes
    recycle:keeptree = no
    recycle:repository = .recycle%u
[linux]
    path = /home/samba/linux
    writable = yes
    hide unreadable = yes
    create mask = 0664
    directory mask = 0775
    valid users = @linux
    vfs objects = recycle
    recycle:exclude = *.tmp *~
    recycle:maxsize = 0
    recycle:touch = no
    recycle:versions = yes
    recycle:keeptree = no
    recycle:repository = .recycle%u
[win]
    path = /home/samba/win
    writable = yes
    inherit permissions = yes
    hide unreadable = yes
    valid users = @win
    vfs objects = recycle
    recycle:exclude = *.tmp *~
    recycle:maxsize = 0
    recycle:touch = no
    recycle:versions = yes
    recycle:keeptree = no
    recycle:repository = .recycle%u

*Windowsとsambaのヴァージョンの組み合わせによって
*create_connection_server_info failed: がでることがあります
*[homes] browseable = yes に設定して、一時的に対処します

[homes]
    comment = Home Directories
    browseable = yes

*省略


○lmhostsファイルの修正

:/etc/samba/lmhosts

*windowsにも同じ設定をします

127.0.0.1       localhost
192.168.0.1     venus
192.168.0.2     earth
192.168.0.21    jupiter
192.168.0.22    saturn
192.168.0.3     mars

○sambaユーザの設定

*既存のlinuxユーザを利用する場合は、工程を省略します
*userIDは/etc/passwdファイルを参照して未使用の番号を使用します
*groupIDは/etc/groupファイルを参照して未使用の番号を使用します

*linuxユーザの登録

# useradd -u 500 sola
# groupadd -g 502 win
# groupadd -g 503 linux
# usermod -G win,linux,wheel sola

*sambaユーザの登録

# pdbedit -a -u sola
new password:← パスワード入力
retype new password:← 再入力

*確認

# pdbedit -L -v

*sambaユーザの削除

# pdbedit -x sola

○sambaディレクトリの作成

# mkdir -p /home/samba/{public,win,linux}
# chown nobody:nobody /home/samba/public
# chmod 2777 /home/samba/public
# chgrp win /home/samba/win
# chmod 2775 /home/samba/win
# chgrp linux /home/samba/linux
# chmod 2775 /home/samba/linux

○sambaの起動

: 起動スクリプトの修正

*samba実行ファイルのインストール先を "PATH" に追加します

#!/bin/sh
#
# chkconfig: 235 91 35
# description: Starts and stops the Samba smbd and nmbd daemons \

*省略

PATH=$PATH:/usr/local/sbin:/usr/local/bin
RETVAL=0

start() {

*省略

:起動

# chmod 755 /etc/rc.d/init.d/smb
# service smb start
# chkconfig --add smb



○Linux (GUI) からの接続

○クライアントのsambaの修正

:/etc/samba/lmhosts

127.0.0.1    localhost

:/etc/samba/samba.conf

[global]
        workgroup = COSMOS

○ファイラーからの接続

*nautilusは、複数のプロトコルに対応しています
*ロケーションバーにアドレスを入力して、sambaサーバにアクセスします

nautilus を起動します
ロケーションバーにsambaサーバ名を入力、Enterキーを押します

nautilus1

ユーザディレクトリにアクセスする場合は、ドメイン名に続けてユーザ名を入れます

nautilus2

作業高率を上げるためブックマークに登録します
ブックマークをクリック[ブックマークに追加]を選択し、登録します



○接続のチェック

○ネットワークの調査

*linuxクライアント

$ nmblookup -A saturn.528p.com
Looking up status of 192.168.0.22
        SATURN          <00> -         B <ACTIVE>
        SATURN          <03> -         B <ACTIVE>
        SATURN          <20> -         B <ACTIVE>
        ..__MSBROWSE__. <01> - <GROUP> B <ACTIVE>
        COSMOS          <1d> -         B <ACTIVE>
        COSMOS          <1e> - <GROUP> B <ACTIVE>
        COSMOS          <00> - <GROUP> B <ACTIVE>

        MAC Address = 00-00-00-00-00-00

*windowsクライアント

C:\> nbtstat -a saturn.528p.com

○ファイアウォールの調査

*sambaサーバ

ポート tcp80 (注意) tcp139 tcp445 udp137 udp138 の開放

*windowsクライアント

パーソナルファイアウォールの調整

○windows Me/XPクライアント

*エクスプローラ → フォルダオプション

[ネットワークのフォルダとプリンタを自動的に検索する] のチェックを外す

*WebDAVを自動検出する機能

sambaサーバのポート tcp80 を開放しておく

○windows Vistaクライアント

*NTLMv2認証のみ許可されている→設定の変更 (省略)
*sambaのデフォルトではNTLMv2認証は許可されていない

globalオプションでNTLMv2認証を許可する

○ Copyright(c) 528p.com All Rights Reserved.