sambaを使用してLinuxとWindowsでファイル共有する設定

LinuxとWindowsでファイル共有したい場合は、sambaを利用すると可能なことが有名です。ここでは何も考えずにサクッとこの環境を準備したい方に向けて、sambaの設定方法を紹介します。最低限のセキュリティ設定も実施済ですので、ご参考になれば幸いです。

sambaのインストール

sambaをインストールするには、下記のコマンドを実行します。

OS周りの設定

sambaを使用するために、OS周りの設定として以下の2点を行います。

1.selinuxの無効化

selinuxが有効になっていると、ファイル共有しても上手く動きません。本来であれば、selinuxのルールにてsambaを利用可能な設定を追加すべきですが、ここではセキュリティのリスクを受け入れて、selinuxを無効化します。

わたしはこの設定を忘れていたために、共有領域のマウントは出来ているのに、なぜかファイルの書き込みが出来ないという現象が発生しました。いろいろ調査してやっと原因が判明した時には、すでに数時間が経過していました…。忘れずに最初に実施しておきましょう。

2.Firewalldの開放

Firewalldで、アクセスできるようにポートを開放します。ここでは、特定のサーバからのみマウントする想定ですので、特定のサーバのIPアドレスからアクセス可能に設定します。

/etc/samba/smb.conf の設定

smb.confは以下の通りに設定します。

[global]
        workgroup = WORKGROUP
        security = user
        netbios name = backupsv
        passdb backend = tdbsam

        map to guest = bad user
        dns proxy = no
        unix charset = UTF-8
        dos charset = CP932
        hosts allow = 192.168.1.10 127.
        bind interfaces only = yes
        mangled names = no
        vfs objects = catia
        catia:mappings = 0x22:0xa8,0x2a:0xa4,0x2f:0xf8,0x3a:0xf7,0x3c:0xab,0x3e:0xbb,0x3f:0xbf,0x5c:0xff,0x7c:0xa6

        load printers = no
        disable spoolss = yes

        vfs objects = acl_xattr
        map acl inherit = yes
        store dos attributes = yes
        acl_xattr:ignore system acls = yes
        acl_xattr:default acl style = windows

[Share]
        comment = backup share.
        path = /Backup/kyoyu
        browseable = No
        writable = Yes
        guest ok = No
        directory mask = 0700
        create mask = 0700
        valid users = administrator
        admin users = administrator

        # log output
        vfs objects = full_audit
        full_audit:facility = LOCAL1
        full_audit:prefix = %u|%I|%m|%S
        full_audit:success = connect disconnect mkdirat unlinkat renameat pwrite pread_recv
        full_audit:failure = none
        full_audit:priority = info

log outputの部分につきましては、共有領域のアクセスログを取得する設定をご確認ください。

ファイルを保存しましたら、サービスを起動します。

samba用アカウント(ユーザ)の作成

まずサーバローカルのアカウントを作成します。ここでは、Windowsの管理者と同じアカウント名で作成します。

次にサーバローカルのアカウントをSambaサーバーアクセス用アカウントとするには、以下のコマンドを実行します。

アカウントの作成が済みましたら、共有領域の/Backup/kyoyu を作成したアカウントのオーナーで作成しておきます。

Windows側の作業

もしDNSに名前解決が出来ていないのであれば、hostsファイルに名前を追加します。具体的には、backupsv という名前とIPアドレスの対を記載します。

その後、コマンドプロンプトより以下を実行します。

認証がでてきたら、administratorユーザで認証します。もしwindows側のadministratorと同じパスワードであった場合は認証が出てこずに、Zドライブとしてマウントされます。

最後に、マウントした領域でファイルの書き込み、削除が出来るか確認し、問題が無ければ終了です。

今回はここまでです。最後までお読みいただきありがとうございました。