○ Sambaのインストール

・Windows,Linuxのファイル共有のためのサーバを構築します
・samba-3.6.25をソースからインストールします
・CentOSのkernelではsmbfsをモデュールとして組み込んでいません
・CentOSのkernelではCIFSをモデュールとして組み込んでいます
・smbmountはこのバージョンでは外されています
・(u)mount.cifsは別パッケージでサポートされています
・make はメンテナンスマシンで行っています

・パッケージの取得、削除は省略します
・エディタ、ファイラーの操作は省略します
・ソースを展開したら説明文を読みましょう
・Enterキーを省略します

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

○関連サイト

:samba-3.6.25.tar.gz (http://www.samba.org/)
  (https://download.samba.org/pub/samba/)
:cifs-utils-6.4.tar.bz2  (https://download.samba.org/pub/linux-cifs/)

○参照ファイル

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

○パッケージビルド環境

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

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

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



○samba-3.6.25

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

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

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

○ソースの展開・ビルド

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

# cd ~/src
[root@saturn:~/src]
# tar zxvf samba-3.6.25.tar.gz
# chown -R root:root samba-3.6.25
# cd samba-3.6.25/source3
[root@saturn:~/src/samba-3.6.25/source3]
# make clean
# ./configure CC="gcc" CFLAGS="-O2 -march=i686 -mtune=atom" \
--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-nmbdsocketdir=/var/run \
--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-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
  nmbdsocketdir: 
  swatdir:       /usr/local/share/swat
  datadir:       /usr/local/share
  codepagedir:   /usr/local/lib/samba

・コンパイル

# make

・インストール (アップデートは別項参照)

# make install

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

# cd ../packaging/RHEL/setup
[root@saturn:~/src/samba-3.6.25/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 ~/src
[root@saturn:~/src]
# tar cf samba-3.6.25-150818.tar samba-3.6.25/
# bzip2 samba-3.6.25-150818.tar

○アップデート

・新規インストールの場合は、次項へ進みます
・ソースの展開・コンパイルの表記は略します

・アップデート

# cd ~/src/samba-3.6.25/source3
[root@saturn:~/src/samba-3.6.25/source3]
# make uninstall
# make install

・キャッシュ情報の更新

# ldconfig

・再起動

# service smb restart

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

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

# cd ~
[root@saturn:~]
# echo /usr/local/lib >> /etc/ld.so.conf.d/usrlocal.conf
# ldconfig
# ldconfig -p | egrep libnetapi\|libsmb\|libtalloc\|libtdb\|libtevent\|libwbclient



○samba-3.6.25の設定

○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 = 100
    log level = 1
    syslog = 0
    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

・省略

・testparmコマンドで設定ファイル(smb.conf)をテストします

[root@saturn:~]
# testparm -s

・パラメータのデフォルト値を含めて表示します

# testparm -sv

○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ユーザの登録

[root@saturn:~]
# 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ディレクトリの作成

[root@saturn:~]
# 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

・ログ用のディレクトリを作成

# mkdir /var/log/samba

○sambaの起動

: 起動スクリプトの修正

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

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

・省略

# Check that we can write to it... so non-root users stop here
[ -w /etc/samba/smb.conf ] || exit 0

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

# Check whether "netbios disabled" is true
ISNETBIOSDISABLED=$(testparm -s 2>/dev/null | \
	sed -n '/\[global\]/,/^$/p' | \

・省略

:起動

[root@saturn:~]
# 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

ユーザディレクトリにアクセスする場合は、sambaサーバ名に続けてユーザ名を入れます

nautilus2



○接続のチェック

○ネットワークの調査

・linuxクライアント

[sola@mars ~]
$ 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.