「Sambaのインストール」の版間の差分

提供: とある社畜の頭脳整理
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の5版が非表示)
3行目: 3行目:
 
そこらあたり前提の手順となっておりますが、ご了承ください。
 
そこらあたり前提の手順となっておりますが、ご了承ください。
  
= Sambaのインストール =
+
== Sambaのインストール ==
 
以下のコマンドを実行して、Sambaをインストールします。
 
以下のコマンドを実行して、Sambaをインストールします。
 
<syntaxhighlight lang="bash">pacman -S samba</syntaxhighlight>
 
<syntaxhighlight lang="bash">pacman -S samba</syntaxhighlight>
13行目: 13行目:
 
※wgetがインストールされていない場合は「pacman -S wget」でインストールしてください。
 
※wgetがインストールされていない場合は「pacman -S wget」でインストールしてください。
  
= 設定 =
+
== 設定 ==
 
ここからが難題です…。<br/>
 
ここからが難題です…。<br/>
 
Sambaですが汎用性が高いからか、設定が非常に煩雑?です…。<br/>
 
Sambaですが汎用性が高いからか、設定が非常に煩雑?です…。<br/>
22行目: 22行目:
 
「nano」等のエディタで「/etc/samba/smb.conf」を開きます。
 
「nano」等のエディタで「/etc/samba/smb.conf」を開きます。
  
== ログの出力先 ==
+
=== ログの出力先 ===
 
はじめに…参考サイトにも書かれていますがログの出力先を、一般的な場所に変更します。
 
はじめに…参考サイトにも書かれていますがログの出力先を、一般的な場所に変更します。
  
31行目: 31行目:
 
<syntaxhighlight lang="text">log file = /var/log/samba/%m.log</syntaxhighlight>
 
<syntaxhighlight lang="text">log file = /var/log/samba/%m.log</syntaxhighlight>
  
== とりあえず書いてある通りに設定してみる ==
+
=== とりあえず書いてある通りに設定してみる ===
=== ワークグループの設定 ===
+
==== ワークグループの設定 ====
 
「workgroup」に「WORKGROUP」を設定します。
 
「workgroup」に「WORKGROUP」を設定します。
  
=== ホームディレクトリの設定 ===
+
==== ホームディレクトリの設定 ====
 
「valid users = %S」だけ書かれていないので追記します。
 
「valid users = %S」だけ書かれていないので追記します。
 
<syntaxhighlight lang="text">[homes]
 
<syntaxhighlight lang="text">[homes]
 
   comment = Home Directories
 
   comment = Home Directories
   browseable = no
+
   read only = no
  writable = yes
 
 
   valid users = %S</syntaxhighlight>
 
   valid users = %S</syntaxhighlight>
 
ちなみに…「%S」ですが、ユーザーIDが入るようです。<br/>
 
ちなみに…「%S」ですが、ユーザーIDが入るようです。<br/>
46行目: 45行目:
 
みんな許可するってことになるかと思います。
 
みんな許可するってことになるかと思います。
  
=== サービスの起動 ===
+
==== サービスの起動 ====
 
以下のコマンドで2つのサービスを起動します。
 
以下のコマンドで2つのサービスを起動します。
 
<syntaxhighlight lang="bash">systemctl start smb
 
<syntaxhighlight lang="bash">systemctl start smb
 
systemctl start nmb</syntaxhighlight>
 
systemctl start nmb</syntaxhighlight>
  
== ユーザーの追加 ==
+
=== ユーザーの追加 ===
 
Sambaに接続するためのユーザーを追加します。
 
Sambaに接続するためのユーザーを追加します。
  
57行目: 56行目:
 
今回は「dropbox-test」というユーザーを追加してみます。
 
今回は「dropbox-test」というユーザーを追加してみます。
  
=== ArchLinuxにユーザーを追加 ===
+
==== ArchLinuxにユーザーを追加 ====
 
まず、ArchLinuxにユーザーを追加します。
 
まず、ArchLinuxにユーザーを追加します。
 
<syntaxhighlight lang="bash">useradd -m dropbox-test</syntaxhighlight>
 
<syntaxhighlight lang="bash">useradd -m dropbox-test</syntaxhighlight>
66行目: 65行目:
 
これで、Smabaのユーザーを登録する準備が整いました。<br/>
 
これで、Smabaのユーザーを登録する準備が整いました。<br/>
  
=== Sambaにユーザーを追加 ===
+
==== Sambaにユーザーを追加 ====
 
引き続き、以下のコマンドでSambaにユーザーを登録します。
 
引き続き、以下のコマンドでSambaにユーザーを登録します。
<syntaxhighlight lang="bash">pdbedit -a -u dropbox-test</syntaxhighlight>
+
{{bc|# pdbedit -a -u dropbox-test}}
 
「-a」はユーザーの追加、「-u」はユーザー名を指定する、という意味です。
 
「-a」はユーザーの追加、「-u」はユーザー名を指定する、という意味です。
  
 
登録したときに以下のようなメッセージが表示されれば成功です。
 
登録したときに以下のようなメッセージが表示されれば成功です。
<syntaxhighlight lang="bash">Unix username:        dropbox-test
+
<syntaxhighlight lang="text">Unix username:        dropbox-test
 
NT username:           
 
NT username:           
 
Account Flags:        [U          ]
 
Account Flags:        [U          ]
96行目: 95行目:
 
Logon hours        : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</syntaxhighlight>
 
Logon hours        : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF</syntaxhighlight>
  
= 接続 =
+
== 接続 ==
== Windowsの場合 ==
+
=== Windowsの場合 ===
 
ホームディレクトリの設定しかしていませんが…Windowsから接続してみます。<br/>
 
ホームディレクトリの設定しかしていませんが…Windowsから接続してみます。<br/>
 
エクスプローラーのアドレス欄に、サーバーのIPアドレスを入力します。<br/>
 
エクスプローラーのアドレス欄に、サーバーのIPアドレスを入力します。<br/>
109行目: 108行目:
 
入れれば成功です。念のため、ファイルやディレクトリの作成・削除をしてみてください。
 
入れれば成功です。念のため、ファイルやディレクトリの作成・削除をしてみてください。
  
== Linuxの場合 ==
+
=== Linuxの場合 ===
=== コマンド接続 ===
+
==== コマンド接続 ====
 
クライアント側で以下のコマンドを実行します。
 
クライアント側で以下のコマンドを実行します。
 
<syntaxhighlight lang="bash">mkdir /mnt/Homes
 
<syntaxhighlight lang="bash">mkdir /mnt/Homes
 
mount.cifs -o username=[userid],password=[password],iocharset=utf8,rw,vers=3.0 //[ip address]/Homes /mnt/Homes</syntaxhighlight>
 
mount.cifs -o username=[userid],password=[password],iocharset=utf8,rw,vers=3.0 //[ip address]/Homes /mnt/Homes</syntaxhighlight>
  
=== 起動時接続 ===
+
==== 起動時接続 ====
 
「nano」等のエディタで「/etc/fstab」を以下の行を追記します。
 
「nano」等のエディタで「/etc/fstab」を以下の行を追記します。
 
<syntaxhighlight lang="bash">//[ip address]/Homes /mnt/Homes cifs username=[userid],password=[password],iocharset=utf8,rw,x-systemd.automount,_netdev,vers=3.0 0 2</syntaxhighlight>
 
<syntaxhighlight lang="bash">//[ip address]/Homes /mnt/Homes cifs username=[userid],password=[password],iocharset=utf8,rw,x-systemd.automount,_netdev,vers=3.0 0 2</syntaxhighlight>
  
= 任意のディレクトリを共有 =
+
== 任意のディレクトリを共有 ==
 
今度は任意のディレクトリを共有してみます。<br/>
 
今度は任意のディレクトリを共有してみます。<br/>
 
共有するディレクトリは「/mnt/Dropbox」ですwww。<br/>
 
共有するディレクトリは「/mnt/Dropbox」ですwww。<br/>
 
ドロップボックスのディレクトリを共有します。
 
ドロップボックスのディレクトリを共有します。
  
== 共有ディレクトリの作成 ==
+
=== 共有ディレクトリの作成 ===
 
まぁ書くほどのことは無いですが…
 
まぁ書くほどのことは無いですが…
 
<syntaxhighlight lang="bash">mkdir /mnt/Dropbox</syntaxhighlight>
 
<syntaxhighlight lang="bash">mkdir /mnt/Dropbox</syntaxhighlight>
131行目: 130行目:
 
<syntaxhighlight lang="bash">chown dropbox-test:dropbox-test /mnt/Dropbox</syntaxhighlight>
 
<syntaxhighlight lang="bash">chown dropbox-test:dropbox-test /mnt/Dropbox</syntaxhighlight>
  
== 共有設定 ==
+
=== 共有設定 ===
 
先ほどと同じく「/etc/samba/smb.conf」を編集していきます。<br/>
 
先ほどと同じく「/etc/samba/smb.conf」を編集していきます。<br/>
 
ファイルの最後に以下を追記します。
 
ファイルの最後に以下を追記します。
<syntaxhighlight lang="bash">[Dropbox]
+
<syntaxhighlight lang="text">[Dropbox]
 
   comment = Dropbox Directory
 
   comment = Dropbox Directory
 
   path = /mnt/Dropbox
 
   path = /mnt/Dropbox
   writable = yes
+
   read only = no
 
   valid users = dropbox-test</syntaxhighlight>
 
   valid users = dropbox-test</syntaxhighlight>
  
== サービスの読み込み直し ==
+
=== サービスの読み込み直し ===
 
以下のコマンドで読み込み直します。
 
以下のコマンドで読み込み直します。
 
<syntaxhighlight lang="bash">systemctl reload smb
 
<syntaxhighlight lang="bash">systemctl reload smb
149行目: 148行目:
 
以上で、接続すると見れるかと思います。
 
以上で、接続すると見れるかと思います。
  
= 参考サイト =
+
== 「read only = no」で設定しているのに書き込みできないとき ==
 +
私は短期間で2回はまったのですが…「read only = no」に設定しているのに書き込めない場合があります。(いわれてみれば当たり前なのですが…)その場合は、共有しているディレクトリの所有者とグループやパーミッションを見直してみてください…。私の場合はSambaに登録したユーザーに合わせて所有者とグループを以下のコマンドで変更しています。
 +
{{bc|# chown -r [ユーザ名]:[グループ名] [パス]}}
 +
具体的には
 +
{{bc|# chown -r naisyo:naisyo /mnt/Dropbox}}
 +
のような感じです。
 +
 
 +
 
 +
 
 +
== 参考サイト ==
 
[https://wiki.archlinux.jp/index.php/Samba Samba - ArchWiki]<br/>
 
[https://wiki.archlinux.jp/index.php/Samba Samba - ArchWiki]<br/>
 
[http://www.samba.gr.jp/doc/samba2.0_and_linux.html 日本Sambaユーザ会 - SambaによるWindowsファイルサーバ構築]<br/>
 
[http://www.samba.gr.jp/doc/samba2.0_and_linux.html 日本Sambaユーザ会 - SambaによるWindowsファイルサーバ構築]<br/>

2023年5月31日 (水) 17:29時点における最新版

色々事情がありまして…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ファイルサーバ構築