結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

プライベートで実験的に使用するSambaサーバーの設定

プライベートで実験的に使う場合、全ドライブをroot等で見たい時があります。
運用サーバーで使うことはありえないですが、とりあえず備忘録。

↓の方に自動化スクリプトがあります。

またトラブル発生時の原因をいち早く突き止めるため、
iptablesSELinuxはオフにしておきましょう。

vi /etc/selinux/config	
#SELINUX=enforcing
SELINUX=disabled
その後システムリブート要。

Sambaをインストール後、もともとある/etc/samba/smb.confをリネームし
以下の内容で新規にsmb.confを作成します。ネットワーク設定とかは自分の環境に合わせます。

yum install samba
[global]
encrypt passwords = yes

dos charset = CP932
unix charset = UTF-8
# display charset = UTF-8

workgroup = WORKGROUP
hosts allow = 127. 192.168.1.

security = user

[share]
path = /
writable = yes
printable = no
public = yes
create mode = 755
directory mode = 755

※display charsetは古いパラメーターかも。2016/02/11時点で書いているとエラーになります。

Sambaユーザーは、大前提としてUNIXユーザーが必要なので
まずはUNIXユーザーを作成。その後Sambaユーザーとして
UNIXユーザーを指定してパスワードを設定する。

ユーザー作成が必要なら追加。

sudo useradd taiyakisan

その後、Sambaアカウントの追加(&パスワードの設定)。
pdbeditはSamba 3.x以降の場合。2.x以前の場合はsmbpasswdを使う。

sudo pdbedit -a -u taiyakisan

追加したユーザーの設定は以下で見られる。

sudo pdbedit -L -v

パスワードの変更はsmbpasswdを使おう。

sudo smbpasswd taiyakisan

サービス開始とシステム起動時の自動起動設定。

sudo service smbd start
sudo service nmbd start
sudo chkconfig smbd on
sudo chkconfig nmbd on

CentOS7などsystemdの場合

systemctl start smb
systemctl start nmb
systemctl enable smb.service
systemctl enable nmb.service

元々のsmb.confを退避して最低限の設定のsmb.confを作成するスクリプト
Sambaインストール後に以下のスクリプトを実行してください。

#!/bin/sh

function file_backup() {
  srcfile=$1
  dstfile=$2

  i=0
  while [ $i -le 100000 ]
  do
    if [ ! -e ${dstfile}.${i} ]
    then
      cp -p ${srcfile} ${dstfile}.${i}

      if [ $? -eq 0 ]
      then
        echo "Copying file succeeded(${dstfile}.${i})."
        break
      else
        echo "Copying file failed(${dstfile}.${i})."
      fi
    fi
    i=`expr $i + 1`
  done
}


file_backup /etc/samba/smb.conf /etc/samba/smb.conf


rm -f /etc/samba/smb.conf
touch /etc/samba/smb.conf

echo "[global]" > /etc/samba/smb.conf
echo "encrypt passwords = yes" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf
echo "dos charset = CP932" >> /etc/samba/smb.conf
echo "unix charset = UTF-8" >> /etc/samba/smb.conf
echo "display charset = UTF-8" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf
echo "workgroup = WORKGROUP" >> /etc/samba/smb.conf
echo "#hosts allow = 127. 192.168.111." >> /etc/samba/smb.conf
echo "server string = Samba Server Version %v" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf
echo "security = user" >> /etc/samba/smb.conf
echo "passdb backend = tdbsam" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf
echo "log file = /var/log/samba/log.%m" >> /etc/samba/smb.conf
echo "max log size = 50" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf
echo "[myshare]" >> /etc/samba/smb.conf
echo "path = /" >> /etc/samba/smb.conf
echo "writable = yes" >> /etc/samba/smb.conf
echo "printable = no" >> /etc/samba/smb.conf
echo "public = yes" >> /etc/samba/smb.conf
echo "create mode = 755" >> /etc/samba/smb.conf
echo "directory mode = 755" >> /etc/samba/smb.conf
echo "socket options = TCP_NODELAY SO_RCVBUF=16384 SO_SNDBUF=16384" >> /etc/samba/smb.conf
echo "" >> /etc/samba/smb.conf

echo "done. To use samba server, do following steps."
echo "1. pdbedit -a -u <UNIX_USER_NAME>"
echo "2. start smb, nmb service."

exit 0
プライバシーポリシー お問い合わせ