2016年2月5日金曜日

smb.conf 試行錯誤

STPを半ばにSambaに寄り道しつつ、さらに数日放置。根本的に学習不足であるのに はぁえヴ でふぃじっと な作業を怠るのは、我ながら酷い。

halve http://ejje.weblio.jp/content/halve
deficit  http://ejje.weblio.jp/content/deficit

気を取り直して。

smb.confの見直し。論より行動、とりあえずファイル中のいくつかを段階的に変更して挙動を整理する。

まずは現状確認…でなく、まだ目をろくに通していないので一望。

smb.confを、セキュリティ無しダダ漏れSamba共有をいいことにWindows側にコピーしてテキストエディタ…が無い、そういえばOSリフレッシュ後にまだ入れていなかった。とりあえずワードパッドでしのぐ。smb.confから設定が有効である部分のみ抜粋すると次のように。


#=============== Global Settings ================
   
[global]

    unix charset = UTF-8
    dos charset = CP932

# ----------------------- Network Related Options -----------------------

    workgroup = WORKGROUP
    server string = Samba Server Version %v
   
    netbios name = CentOS-Samba
   
# --------------------------- Logging Options -----------------------------

    log file = /var/log/samba/log.%m
    max log size = 50
   
# ----------------------- Standalone Server Options ----------------------

    security = user
    passdb backend = tdbsam


# ----------------------- Domain Members Options ------------------------


# ----------------------- Domain Controller Options ------------------------
   
   
# ----------------------- Browser Control Options --------------------------
   
# ---------------------------Name Resolution -------------------------------
   
# --------------------------- Printing Options -------------------------------

    load printers = yes
    cups options = raw

# -------------------------- Filesystem Options -----------------------------



#============== Share Definitions ===============
   
[homes]
    comment = Home Directories
    browseable = yes
    writable = yes

[printers]
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
   
[Share]
    path = /home/share
    writable = yes
    guest ok = yes
    guest only = yes
    create mode = 0777
    directory mode = 0777
    share modes = yes

[drawer]
    path = /home/drawer
    writable = yes
    create mode = 0770
    directory mode = 0770
    share modes = yes
    guest ok = no
    valid users = @drawer


Share Definitions よりも前の部分は、個々のフォルダの共有状況とは関係なさそうだ。現状では、"home" "share" "drawer" の3つに読み書き可能。smbpasswd -a Windowsuser を設定した結果と思しき "Windowsuser" に対しても読み書きが可能だが、これはWindows側で当該ユーザアカウントを使用しているので当然のようでもあるが、アクセスに際してユーザ名もパスワードも問われないので、単に無分別にアクセスできるだけのことかもしれない。

ここでひとつ、やっと気づいた。homes=windowsuser なるほど。

次に、[Share]  guest ok = yes を no へ変更してみたが、状況変わらず。

次に、[Share]  guest only = yes を no へ変更してみたが、状況変わらず。

次に、[homes] における

;       browseable = no
        browseable = yes

敢えてyesとしたこれを削除する。後でわかったことだが、browseable = yes を消すだけでは十分でなく、browseable = no を記述しなければならない。

ここで、ひとつ誤設定を。

smb.conf(5)
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/smb.conf.5.html

こちらの中から

path = /data/pchome/%S

を設定してしまった。これは一例に過ぎずテスト機にこんなパスは存在していないのだが、何とも愚かすぎて泣けてくる。こちらは直ちに修正し、次に

#=============== Global Settings ================
   
[global]

    unix charset = UTF-8
    dos charset = CP932
    browseable = no

を変更したところ、確かにすべてがぶらうずぶるでなくなった。これ自体は当然のことだが、これと前後して drawer が消えた。SMB的に見えなくなっただけでなくて、smb.conf中の記述ごとごっそり消えた。

さて、どこまで巻き戻そうか。


設定を巻き戻す前に、この状態でWindows側で別アカウントを作成してみる。別アカウントは CentOS上に無いもの。このアカウントでは、Samba共有へのアクセス時、ユーザアカウントとパスワードを要求される。この時、Samba上に既に存在するユーザグループのアカウント・パスワードを入力すれば、アクセス可能となった。

--->Samba共有のアカウントとパスワードを一度入手してしまえば、Windowsログオンとは全く無関係にアクセス可能だということ。この時点ではADと無関係なのだから当たり前。もっとも、こんな程度ならコンシューマ向けのNASの方がずっとわかりやすくて低コスト。


バッファローの個人向けNASでもAD連携可能
http://buffalo.jp/support_s/guide2/manual/ls/200/99/ja/pc_index.html?Chapter3#h3anc1

バッファローの法人向けNASで最も小さいモデルの直販でもこの程度のコスト
http://www.buffalo-direct.com/directshop/products/detail.php?product_id=18264




次に、Samba側でもこのアカウントを作成してみる。

[root@localhost ~]# useradd AccountE
[root@localhost ~]# smbpasswd -a AccountE
New SMB password:
Retype new SMB password:
Added user AccountE.
[root@localhost ~]

smbpasswd
http://www.samba.gr.jp/project/translation/3.5/htmldocs/manpages-3/smbpasswd.8.html

アカウントEからは、当該ユーザのフォルダへアクセス可能で、同一のフォルダに対してhomesを指定してもアクセス可能。一方で他ユーザのフォルダは、権限を管理者に求めよな趣旨の応答。ユーザ毎でない共有フォルダはアクセス可能。

というわけで、ユーザ要件的にはこれでOK。ただし、ぶらうずぶるでないので、これを修正する必要がある。globalセクションの設定をデフォルトに戻す。このケースのWindowsはネットワーク探索を有効にしていないので、ネットワークアイコンをダブルクリックするだけではSambaサーバは表示されないが、Sambaサーバのパスを入力すれば共有フォルダがすべて見えた。


次に、紛らわしいhomesの表示、これを消す。

#============ Share Definitions =============

[homes]
        comment = Home Directories
        browseable = no

ユーザ毎のフォルダ名とhomesが重複して見えることが無くなった。


この状態において、CentOS上に無いユーザでSambaへアクセスを試みると、ユーザ認証が必須となる。guest ok = yes と guest ony = yes を設定したフォルダにおいても同様。また、CentOS上のアカウントとしては設定したが Samba上に設定のないユーザでSMBアクセスを試みたところ、ユーザ認証画面においてCentOSアカウントを入力してもはじかれる。こんな初歩的な次元でなければ、 security = user と 同様に share は混在して運用は可能らしいが、よちよち学習段階としてはここまで。












0 件のコメント:

コメントを投稿