Sambaのインストール

提供: とある社畜の頭脳整理
ナビゲーションに移動 検索に移動

色々事情がありまして…Dropboxを動作させるユーザーIDとSambaで共有するためのユーザーIDは同一のものにしようとしています。
また、PC(Windows10)及びRaspbianと共有することが前提となっています。
そこらあたり前提の手順となっておりますが、ご了承ください。

Sambaのインストール

以下のコマンドを実行して、Sambaをインストールします。

pacman -S samba


上記でインストールしても設定ファイルが作成されないようです…。
なので、下記コマンドで設定ファイル「smb.conf」をダウンロードします。

wget "https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD" -O /etc/samba/smb.conf

※wgetがインストールされていない場合は「pacman -S wget」でインストールしてください。

設定

ここからが難題です…。
Sambaですが汎用性が高いからか、設定が非常に煩雑?です…。
細かいところまで手が届くと言えばそうなのですが…家で適当に使用するにはオーバースペックな感じを受けます…。

そこで、できるだけ最小限の設定を目指します。

「nano」等のエディタで「/etc/samba/smb.conf」を開きます。

ログの出力先

はじめに…参考サイトにも書かれていますがログの出力先を、一般的な場所に変更します。

変更前

log file = /usr/local/samba/var/log.%m

変更後

log file = /var/log/samba/%m.log

とりあえず書いてある通りに設定してみる

ワークグループの設定

「workgroup」に「WORKGROUP」を設定します。

ホームディレクトリの設定

「valid users = %S」だけ書かれていないので追記します。

[homes]
   comment = Home Directories
   read only = no
   valid users = %S

ちなみに…「%S」ですが、ユーザーIDが入るようです。
で「valid users」は許可するユーザーなので…
みんな許可するってことになるかと思います。

サービスの起動

以下のコマンドで2つのサービスを起動します。

systemctl start smb
systemctl start nmb

ユーザーの追加

Sambaに接続するためのユーザーを追加します。

Sambaで利用するユーザーはArchLinuxのユーザーとして登録されている必要があります。
今回は「dropbox-test」というユーザーを追加してみます。

ArchLinuxにユーザーを追加

まず、ArchLinuxにユーザーを追加します。

useradd -m dropbox-test

続けてパスワードを設定します。

passwd dropbox-test


これで、Smabaのユーザーを登録する準備が整いました。

Sambaにユーザーを追加

引き続き、以下のコマンドでSambaにユーザーを登録します。

# pdbedit -a -u dropbox-test

「-a」はユーザーの追加、「-u」はユーザー名を指定する、という意味です。

登録したときに以下のようなメッセージが表示されれば成功です。

Unix username:        dropbox-test
NT username:          
Account Flags:        [U          ]
User SID:             S-1-5-21-3457465057-3604410224-1916174006-1000
Primary Group SID:    S-1-5-21-3457465057-3604410224-1916174006-513
Full Name:            
Home Directory:       \\archlinux\dropbox-test
HomeDir Drive:        
Logon Script:         
Profile Path:         \\archlinux\dropbox-test\profile
Domain:               ARCHLINUX
Account desc:         
Workstations:         
Munged dial:          
Logon time:           0
Logoff time:          木, 07  2月 2036 00:06:39 JST
Kickoff time:         木, 07  2月 2036 00:06:39 JST
Password last set:    金, 05  7月 2019 14:51:27 JST
Password can change:  金, 05  7月 2019 14:51:27 JST
Password must change: never
Last bad password   : 0
Bad password count  : 0
Logon hours         : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

接続

Windowsの場合

ホームディレクトリの設定しかしていませんが…Windowsから接続してみます。
エクスプローラーのアドレス欄に、サーバーのIPアドレスを入力します。
すると、以下の様にIDとパスワードを聞かれます。
(画面がWindows10では無いですが…)
Archlinux-samba-001.png

Samba用に登録したユーザーIDとパスワードを入力します。
ログインすると、ユーザーIDと同じ名前の共有フォルダがあるかと思います。

入れれば成功です。念のため、ファイルやディレクトリの作成・削除をしてみてください。

Linuxの場合

コマンド接続

クライアント側で以下のコマンドを実行します。

mkdir /mnt/Homes
mount.cifs -o username=[userid],password=[password],iocharset=utf8,rw,vers=3.0 //[ip address]/Homes /mnt/Homes

起動時接続

「nano」等のエディタで「/etc/fstab」を以下の行を追記します。

//[ip address]/Homes /mnt/Homes cifs username=[userid],password=[password],iocharset=utf8,rw,x-systemd.automount,_netdev,vers=3.0 0 2

任意のディレクトリを共有

今度は任意のディレクトリを共有してみます。
共有するディレクトリは「/mnt/Dropbox」ですwww。
ドロップボックスのディレクトリを共有します。

共有ディレクトリの作成

まぁ書くほどのことは無いですが…

mkdir /mnt/Dropbox

でディレクトリを作成します。
また、所有者を以下のコマンドで「dropbox-test」に変更します。

chown dropbox-test:dropbox-test /mnt/Dropbox

共有設定

先ほどと同じく「/etc/samba/smb.conf」を編集していきます。
ファイルの最後に以下を追記します。

[Dropbox]
   comment = Dropbox Directory
   path = /mnt/Dropbox
   read only = no
   valid users = dropbox-test

サービスの読み込み直し

以下のコマンドで読み込み直します。

systemctl reload smb
systemctl reload nmb


以上で、接続すると見れるかと思います。

「read only = no」で設定しているのに書き込みできないとき

私は短期間で2回はまったのですが…「read only = no」に設定しているのに書き込めない場合があります。(いわれてみれば当たり前なのですが…)その場合は、共有しているディレクトリの所有者とグループやパーミッションを見直してみてください…。私の場合はSambaに登録したユーザーに合わせて所有者とグループを以下のコマンドで変更しています。

# chown -r [ユーザ名]:[グループ名] [パス]

具体的には

# chown -r naisyo:naisyo /mnt/Dropbox

のような感じです。


参考サイト

Samba - ArchWiki
日本Sambaユーザ会 - SambaによるWindowsファイルサーバ構築