「Sambaのインストール」の版間の差分
Rin-scrooge (トーク | 投稿記録) (→共有設定) |
Rin-scrooge (トーク | 投稿記録) |
||
(同じ利用者による、間の3版が非表示) | |||
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 | ||
− | + | read only = no | |
− | |||
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にユーザーを登録します。 | ||
− | + | {{bc|# pdbedit -a -u dropbox-test}} | |
「-a」はユーザーの追加、「-u」はユーザー名を指定する、という意味です。 | 「-a」はユーザーの追加、「-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/> | ||
ファイルの最後に以下を追記します。 | ファイルの最後に以下を追記します。 | ||
137行目: | 136行目: | ||
comment = Dropbox Directory | comment = Dropbox Directory | ||
path = /mnt/Dropbox | path = /mnt/Dropbox | ||
− | + | 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では無いですが…)
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
のような感じです。