Sambaの設定ファイルsmb.confメモ

ネットワーク内にLinuxを導入したらWindowsのファイル共有を使えると効率がいいので、Sambaをインストールして設定していますが、その設定ファイルsmb.confをメモのために置いときます。


< 2017/06/26 追記 > 
CentOS7向け最新記事はこちら。



インストールした直後はとりあえず/etc/samba/smb.confに次の記述して保存。

[Samba_Conf]
    comment = Samba config
    path = /etc/samba
    guest ok = No
    browseable = Yes
    write list = root

sambaのユーザにrootを追加

$ pdbedit -a root

追加したらsambaを再起動

$ /etc/rc.d/init.d/smb restart

そのあとWindowsからネットワーク経由でサーバにアクセス。

下に書いてあるsmb.confに上書きしてsambaを再起動。 日本語が含まれているので文字コードを注意。 再起動後はたまにsambaユーザが消えるので

$ pdbedit –L

で確認。いなかったらもう一回rootユーザを追加。

$ pdbedit -a root

sambaを自動起動させる。

$ chkconfig smb on

以下smb.confの中身

[global]

#動作モード
    smb ports = 139

#ユーザの認証する方法(user, server, domain, share)
    security = user

#Unix Windows互換機
    dos charset = CP932
    unix charset = UTF-8
    display charset = UTF-8
    #ファイルモードをウィンドウズ風に
    dos filemode = Yes
    dos filetimes = Yes
    dos filetime resolution = Yes

#NetBIOSサービス設定
    #sambaサーバのドメイン名またはワークグループ名を指定
    workgroup = WORKGROUP
    #エクスポローラで表示したときのコメントとして表示される
;    server string = Samba %v on %h (Start time:%T )
    server string = Samba %v
    #NetBIOS名を指定
    netbios name = pluto

#プリンタ機(プリンタの共有はしない)
    load printers = No
    disable spoolss = yes
;    printcap name = /etc/printcap
    printing = bsd
;    cups options = raw

#パスワード管理、同期
    #security = server, domainの際にパスワードを認証するサーバ
;    password server = miyan
;    password level = 8
;    username level = 8
    encrypt passwords = Yes
    username map = /etc/samba/smbusers
;    passdb backend = tdbsam
    unix password sync = Yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *New*password* %n\n *ReType*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*

#名前解決関係
    name resolve order = wins lmhosts bcast
;    local master = Yes
;    os level = 65
;    domain logons = Yes

#ブラウジング機能関係
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
;    interfaces = 192.168.12.2/24 192.168.13.2/24
;    remote browse sync = 192.168.3.25 192.168.5.255
;    remote announce = 192.168.1.255 192.168.2.44
;    domain master = No
;    preferred master = Yes

#WINS関係
    wins support = yes
;    wins server = w.x.y.z
;    wins proxy = Yes
    dns proxy = No

#ユーザ管理
    hosts allow = 192.168.0. 192.168.1. 127.
    hosts deny = ALL
;    guest account = pcguest
    #認証なしでアクセスしたいときはコメントをはずす
    #map to guest = bad user
    admin users = administrator root
    winbind uid = 10000-20000
    winbind gid = 10000-20000

#ログの設定
    log file = /var/log/samba/%m.log
    max log size = 50
;    include = /etc/samba/smb.conf.%m
;    preserve case = No
;    short preserve case = No
;    default case = lower
;    case sensitive = No
;    logon script = %m.bat
;    logon script = %U.bat
    logon path = \\%L\Profiles\%U
;    logon path = \\%L\%U\profile

#Windowsクライアントに時刻サーバとして提供するかどうか
    time server = yes

#その他
    idmap uid = 16777216-33554431
    idmap gid = 16777216-33554431
    template shell = /bin/false
    winbind use default domain = no

#以下 共有セクション
[homes]
    comment = %U's Home Directory
    read only = No
    browseable = No

#システムログファイル
[System_Log]
    comment = System log file
    path = /var/log
    guest ok = No
    browseable = Yes
    read only = Yes

#sambaの設定ファイル
[Samba_Conf]
    comment = Samba config
    path = /etc/samba
    guest ok = No
    browseable = Yes
    write list = root

#いろいろな設定ファイル
[Etc_Conf]
    comment = Etc config
    path = /etc
    guest ok = No
    browseable = Yes
    write list = root

#tempディレクトリ
[tmp]
    comment = Temp Directory
    path = /tmp
    guest ok = No
    browseable = Yes
    writable = Yes

#optディレクトリ
[opt]
    comment = OPTION Directory
    path = /opt
    guest ok = No
    browseable = Yes
    writable = Yes
    #for TortoiseSVN(subversion)
    create mask = 0644
    force create mode = 0600
    security mask = 0555
    force security mode = 0600

<2008/06/21 追記>
CentOSの場合は次のようにしたほうがいいかも。ファイルの文字コードは「utf-8n」で保存することを忘れずに。

#Unix Windows互換機
    dos charset = CP932
    unix charset = UTF-8
    display charset = UTF-8

<2008/11/08 追記>
LAN内からのアクセスしか認めないのようhosts allowとhosts denyの設定を変更。

<2008/12/09 追記>
Unix ユーザとのパスワード同期を有効にした。

<2009/04/11 追記>
認証しなくても共有フォルダにアクセスできるようにmap to guest を追記。コメントをはずすと認証なしでアクセス可能に。

<2009/08/07 追記>
いちいち書き換えるのが面倒だったので、charsetをeucJP-msをUTF-8に変更。あと、細かいところを自分が使いやすいように変更

<2009/09/02 追記>
次のようなエラーが出るので

[2009/09/01 09:01:05, 0] lib/util_sock.c:get_peer_addr(1224)
  getpeername failed. Error was 通信端点が接続されていません
[2009/09/01 09:01:05, 0] lib/util_sock.c:write_data(562)
  write_data: write failure in writing to client 192.168.0.88. Error 接続が相手からリセットされました

smb ports = 139を追加。

<2010/06/10 追記>
WindowsのTortoiseSVNと連携するときの設定を追加。詳細はこちらの記事を参照。

<2010/08/23 追記>
コマンドメモ
pdbedit -a <ユーザー名> :ユーザー追加
pdbesit -x <ユーザー名> :ユーザー削除
smbpasswd <ユーザー名> :パスワード変更

<2011/03/17 追記>
他のユーザーと共有して、TortoiseSVN(Subversion)を使うだけの設定を追記。新しく仮想マシンを追加したときはこの設定だけ変更することにした。

workgroup = VM
server string = Samba %v
netbios name = vm-server
hosts allow = 127. 192.168.

security = share
public = yes
guest only = yes
guest account = smbguest

load printers = no
; cups options = raw

[opt]
    comment = Option Directory
    path = /opt
    browseable = Yes
    writable = Yes
    #for TortoiseSVN(subversion)
    create mask = 0644
    force create mode = 0600
    security mask = 0555
    force security mode = 0600

# useradd -M -s /sbin/nologon smbguest

# chown smbguest /opt