sambaの設定(windowsファイルサーバー)

ホームへ戻る

    合計:
昨日:
今日:
更新日 2013/7/4

Linuxサーバを、windowsのファイルサーバーとして用いるために、sambaを構築する。

 
◆SAMBAのインストール <<TOP

[root@server ~]# yum -y install samba ← sambaのインストール
   ・
   ・
   ・
Transaction Test Succeeded
Running Transaction
  Installing : libtalloc-2.0.1-1.1.el6.i686                                        1/5 
  Installing : libtdb-1.2.1-3.el6.i686                                             2/5 
  Installing : samba-winbind-clients-3.5.10-114.el6.i686                           3/5 
  Installing : samba-common-3.5.10-114.el6.i686                                    4/5 
  Installing : samba-3.5.10-114.el6.i686                                           5/5 

Installed:
  samba.i686 0:3.5.10-114.el6                                                          

Dependency Installed:
  libtalloc.i686 0:2.0.1-1.1.el6        libtdb.i686 0:1.2.1-3.el6                     
  samba-common.i686 0:3.5.10-114.el6    samba-winbind-clients.i686 0:3.5.10-114.el6   

Complete!
[root@server ~]# 

      

 

◆sambaの設定 <<TOP

@ホームディレクトリの作成

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

[root@server ~]# 

      

A共有ディレクトリの作成

[root@server ~]# mkdir /home/samba ← 全ユーザでフルアクセス出来るディレクトリの作成

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

[root@server ~]# 

      

 

B設定ファイルの編集

[root@server ~]# vi /etc/samba/smb.conf ← 設定ファイルの編集
   ・
   ・
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors.#
#======================= Global Settings =====================================
[global]
     ↓ 以下の3行を追加する
   dos charset = CP932
   unix charset = UTF-8
   display charset = UTF-8
   
# workgroup = NT-Domain-Name or Workgroup-Name, eg: MIDEARTH
   workgroup = MYGROUP
     ↓ windowsのワークグループ名を指定   
   workgroup = WORKGROUP
   ・
   ・   
# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
;   hosts allow = 192.168.1. 192.168.2. 127.

    hosts allow = 192.168.11. 127.  ← アクセス許可として内部アドレスを指定

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

   ・
   ・
#============================ Share Definitions ==============================
[homes]
   comment = Home Directories
   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 = Read only Directories
   path = /home/samba/public
   public = yes
   guest ok = yes

   ↓ フルアクセス用の共有ディレクトリ
[share]
   comment = All User shared Directories
   path = /home/samba/share
   public = yes
   only guest = yes
   writable = yes
   printable = no
   vfs objects = recycle
   recycle:repository = .recycle
   recycle:keeptree = no
   recycle:versions = yes
   recycle:touch = no
   recycle:maxsize = 0
   recycle:exclude = *.tmp ~$*  
     

C上記で作成した共有ディレクトリの作成


[root@server ~]# mkdir -p /home/samba/public ← リードオンリー用共有ディレクトリ作成

[root@server ~]# mkdir -p /home/samba/share ← フルアクセス用の共有ディレクトリ作成

[root@server ~]# chown -R nobody. /home/samba/ ← sambaの所有者を変更

[root@server ~]#


      

Dごみ箱内ファイルの自動削除設定(ゴミ箱の設定参照)

[root@server ~]# vi /etc/cron.weekly/recyclewatch ← 削除スクリプト作成
#!/bin/bash

for user in `ls /home/`
do
    [ -d /home/$user/.recycle ] && \
    tmpwatch -f 720 /home/$user/.recycle
done

[ -d /home/samba/share/.recycle ] && \
tmpwatch -f 720 /home/samba/share/.recycle

[root@server ~]# chmod +x /etc/cron.weekly/recyclewatch ← 実行権限付与

[root@server ~]#

      
 
 
◆sambaの起動 <<TOP

[root@server ~]# /etc/rc.d/init.d/smb start
SMB サービスを起動中:                                      [  OK  ]
[root@server ~]# /etc/rc.d/init.d/nmb start
NMB サービスを起動中:                                      [  OK  ]
[root@server ~]# chkconfig smb on
[root@server ~]# chkconfig --list smb
smb             0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@server ~]# chkconfig nmb on
[root@server ~]# chkconfig --list nmb
nmb             0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@server ~]# 


      
 
◆sambaへアクセスするユーザの設定 <<TOP

[root@server ~]# useradd -s /sbin/nologin centos ← 新規にユーザを作成
[root@server ~]# passwd centos ← パスワードの設定

[root@server ~]# pdbedit -a centos ← Linuxに登録済のユーザをSambaサーバーアクセス用ユーザとして新規登録 
new password:
retype new password:
Unix username:        centos
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-2801763280-2213936735-1336496797-1000
Primary Group SID:    S-1-5-21-2801763280-2213936735-1336496797-513
Full Name:            
Home Directory:       \\server\centos
HomeDir Drive:        
Logon Script:         
Profile Path:         \\server\centos\profile
Domain:               SERVER
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          never
Kickoff time:         never
Password last set:    木, 22 12月 2011 09:59:36 JST
Password can change:  木, 22 12月 2011 09:59:36 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@server ~]#

      

ここまで、設定してネットワークにアクセスすると下記のようなる(windows xp)ワークグループはarisonnet

ファイルサーバーを選択すると下記のように表示されるはず

shareフォルダには、読み書きができ、publicは、読み出しのみであることを確認する。

   
   
sambaの設定で困ったこと

<<TOP

smb.confファイルをいじっても、windowsから、見えるけど、アクセスできないというところで、悩みました。

原因は、iptablesでセキュリティが働いていたことでした。

/etc/init.d/iptables stop
とルールをクリアしてやると、windows からもアクセスすることができるようになった。

次に、下記のようにiptablesのルールに

#----------------------------------------------------#
# 外部からの137,138番ポート(samba)へのアクセスを許可     #
#----------------------------------------------------#
iptables -A INPUT -p udp --dport 137:138 -j ACCEPT
iptables -A INPUT -p tcp --dport 139 -j ACCEPT

を追加してやると、次からはOKでした。

<<TOP
 
 
   
 
TOPへ

Copyright(C) 2005-2013 arisonserver. All rights reserved.