Windowsファイルサーバー構築(Samba)

最終更新日: 2014.11.20

<<トップページ <<新着情報 <<リンク集 <<サイト内検索 <<管理人へメール <<Scientific Linuxで自宅サーバー構築 <<Fedoraで自宅サーバー構築

■概要

LinuxサーバーをWindowsのファイルサーバーにする。
ここでは、Sambaを導入し、各ユーザのホームディレクトリへWindowsクライアントからアクセスできるようにする。
また、全ユーザでフルアクセスできる共有フォルダも作成する。
なお、Sambaサーバーへは内部からのみアクセスできるようにする。


■Sambaインストール

[root@centos ~]# yum -y install samba ← sambaインストール

■Samba設定

(1)Sambaサーバーアクセス用ユーザ作成
−−新規にユーザを作成する場合はここから−−
[root@centos ~]# useradd centos ← Linuxへユーザ新規登録(例としてcentosとする)

[root@centos ~]# passwd centos ← パスワード設定
Changing password for user centos.
New password: ← パスワード応答
Retype new password: ← パスワード応答(確認)
passwd: all authentication tokens updated successfully.

−−既存のユーザをSambaサーバーアクセス用ユーザとする場合はここから−−
[root@centos ~]# pdbedit -a centos ← Linuxに登録済のユーザをSambaサーバーアクセス用ユーザとして新規登録(例としてcentosとする)
new password: ← パスワード応答
retype new password: ← パスワード応答(確認)
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Unix username:        centos
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-1397570601-503051572-2212552623-2000
Primary Group SID:    S-1-5-21-1397570601-503051572-2212552623-2001
Full Name:
Home Directory:       \\linux\centos
HomeDir Drive:
Logon Script:
Profile Path:         \\linux\centos\profile
Domain:               LINUX
Account desc:
Workstations:
Munged dial:
Logon time:           0
Logoff time:          土, 14 12月 1901 05:45:51 GMT
Kickoff time:         土, 14 12月 1901 05:45:51 GMT
Password last set:    月, 13 12月 2004 16:06:00 GMT
Password can change:  月, 13 12月 2004 16:06:00 GMT
Password must change: 土, 14 12月 1901 05:45:51 GMT
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

(2)ホームディレクトリ作成
新規ユーザー対処
[root@centos ~]# mkdir /etc/skel/samba ← 新規ユーザ作成時にsamba用ディレクトリ作成

既存ユーザー対処
[root@centos ~]# vi mkhomedir.sh ← 既存ユーザsamba用ディレクトリ作成スクリプト作成
#!/bin/bash

for user in `ls /home`
do
    id $user > /dev/null 2>&1
    [ $? -eq 0 ] && \
    [ ! -d /home/$user/samba ] && \
    mkdir /home/$user/samba && \
    chown $user:$user /home/$user/samba && \
    echo "/home/$user/samba create"
done

[root@centos ~]# sh mkhomedir.sh ← 既存ユーザsamba用ディレクトリ作成スクリプト実行

[root@centos ~]# rm -f mkhomedir.sh ← 既存ユーザsamba用ディレクトリ作成スクリプト削除

(3)共有ディレクトリ作成
[root@centos ~]# mkdir /home/samba ← 全ユーザでフルアクセスできる共有ディレクトリ作成

[root@centos ~]# chown nobody:nobody /home/samba ← 共有ディレクトリ所有者変更

(4)Samba設定
[root@centos ~]# vi /etc/samba/smb.conf ← Samba設定ファイル編集
[global]
   unix charset = UTF-8 ← 追加(Linux側日本語文字コード)
   dos charset = CP932 ← 追加(Windows側日本語文字コード)

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = MYGROUP
   ↓
   workgroup = WORKGROUP ← 変更(Windowsのワークグループ名を指定)
        ※マイコンピュータのプロパティ⇒コンピュータ名タブ内のワークグループ欄を参照

;   hosts allow = 192.168.1. 192.168.2. 127.
   hosts allow = 192.168.1. 127. ← 追加(内部からのみアクセスできるようにする)

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
;   load printers = yes ← 行頭に;を追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
   load printers = no ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合
   disable spoolss = yes ← 追加(プリンタ共有無効化)※Sambaでプリンタを共有しない場合

[homes]
   comment = Home Directories
   path = %H/samba ← 追加(/home/ユーザー名/sambaをホームディレクトリにする)
   browseable = no
   writable = yes
   各ユーザ専用のごみ箱機能追加(ここから)
   ※ファイル削除時に自動的にごみ箱へ移動されるようにする
   vfs objects = recycle ← ごみ箱の有効化
   recycle:repository = .recycle ← ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no ← ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes ← 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no ← ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 ← ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* ← ここで指定したファイルはごみ箱へ移動せずに即削除する
   各ユーザ専用のごみ箱機能追加(ここまで)

以下を最終行へ追加
[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   only guest = yes
   共有ディレクトリのごみ箱機能追加(ここから)
   ※ファイル削除時に自動的にごみ箱へ移動されるようにする
   vfs objects = recycle ← ごみ箱の有効化
   recycle:repository = .recycle ← ごみ箱のディレクトリ名(/home/ユーザ名/.recycle)
   recycle:keeptree = no ← ごみ箱へ移動時にディレクトリ構造を維持しない
   recycle:versions = yes ← 同名のファイルがごみ箱にある場合に別名で移動
   recycle:touch = no ← ごみ箱へ移動時にタイムスタンプを更新しない
   recycle:maxsize = 0 ← ごみ箱へ移動するファイルのサイズ上限(0:無制限)
   recycle:exclude = *.tmp ~$* ← ここで指定したファイルはごみ箱へ移動せずに即削除する
   共有ディレクトリのごみ箱機能追加(ここまで)

■Samba起動

[root@centos ~]# systemctl start smb ← Samba起動※CentOS7の場合
[root@centos ~]# /etc/rc.d/init.d/smb start ← Samba起動※CentOS6,5の場合

[root@centos ~]# systemctl start nmb ← nmb起動※CentOS7の場合
[root@centos ~]# /etc/rc.d/init.d/nmb start ← nmb起動※CentOS6,5の場合

[root@centos ~]# systemctl enable smb ← Samba自動起動設定※CentOS7の場合
[root@centos ~]# chkconfig smb on ← Samba自動起動設定※CentOS6,5の場合

[root@centos ~]# systemctl enable nmb ← nmb自動起動設定※CentOS7の場合
[root@centos ~]# chkconfig nmb on ← nmb自動起動設定※CentOS6,5の場合


■Samba確認

Windowsクライアント側で「スタート」⇒「ファイル名を指定して実行」⇒「名前」に「\\サーバーIPアドレス(例:\\192.168.1.30)」または「\\ホスト名(例:\\centos)」を入力して「OK」ボタン押下し、Samba共有フォルダが表示されることを確認。

※ユーザ名とパスワードの問い合わせには、pdbeditコマンドで作成したユーザ名、パスワードを入力する

■ごみ箱内ファイルの自動削除設定

1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除するようにする
[root@centos ~]# vi /etc/cron.weekly/recyclewatch ← ごみ箱内ファイル自動削除スクリプト作成
#!/bin/bash
for user in `ls /home/`
do
    if [ -d /home/$user/.recycle ]; then
        tmpwatch -f 720 /home/$user/.recycle/
    fi
done

[root@centos ~]# chmod +x /etc/cron.weekly/recyclewatch ← スクリプトに実行権限付加


LPIロゴ Copyright© 2005-2016 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします