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

最終更新日: 2014.02.19

<<トップページ <<新着情報 <<サイト内検索 <<CentOSで自宅サーバー構築 <<Scientific Linuxで自宅サーバー構築

■概要

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


■Sambaインストール

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

■Samba設定

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

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

−−既存のユーザをSambaサーバーアクセス用ユーザとする場合はここから−−
[root@fedora ~]# pdbedit -a fedora ← Linuxに登録済のユーザをSambaサーバーアクセス用ユーザとして新規登録(例としてfedoraとする)
new password: ← パスワード応答
retype new password: ← パスワード応答(確認)
startsmbfilepwent_internal: file /etc/samba/smbpasswd did not exist. File successfully created.
Unix username:        fedora
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\fedora
HomeDir Drive:
Logon Script:
Profile Path:         \\linux\fedora\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@fedora ~]# 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@fedora ~]# sh mkhomedir.sh ← 既存ユーザsamba用ディレクトリ作成スクリプト実行

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

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

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

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

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

# 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@fedora ~]# /etc/rc.d/init.d/smb start ← Samba起動
Starting smb (via systemctl):                              [  OK  ]

[root@fedora ~]# /etc/rc.d/init.d/nmb start ← nmb起動
Starting nmb (via systemctl):                              [  OK  ]

[root@fedora ~]# chkconfig smb on ← Samba自動起動設定

[root@fedora ~]# chkconfig nmb on ← nmb自動起動設定


■Samba確認

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

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

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

1週間ごとに30日間アクセスのないごみ箱内のファイルを自動的に削除するようにする
[root@fedora ~]# 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@fedora ~]# chmod +x /etc/cron.weekly/recyclewatch ← スクリプトに実行権限付加




▲このページのトップへ戻る

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