LoginSignup
73
96

More than 3 years have passed since last update.

SambaでLinuxとWindowsとの間でファイル共有

Last updated at Posted at 2018-02-19

Sambaでファイル共有

Samba(サンバ)を使うことでLinuxマシンとの間で,Windowsのワークグループと同様にファイル共有ができます.

動作確認済み環境

Ubuntu
OS Ubuntu 16.04
kernel 4.15
Raspbian(Raspberry Pi 3B+)
OS Raspbian Buster Lite
kernel 4.19.97-v7+

Sambaサーバ構築手順

Sanbaインストール

$ sudo apt-get install -y samba

samba1.PNG

インストール中,「(要約)IPの割り振り方がDHCPの場合,ネットワーク内にあるWINSサーバの情報を的供できます.DHCP から WINS 設定を使うよう smb.conf を変更しますか?」という選択画面が表示されます.
私の場合,マシンを扱う環境でWINSサーバの運用は行っていないことから,Noを選択しました.

(特定ユーザーのみアクセスを許可したい場合)Sambaユーザーを登録

ゲストに対して全員にディレクトリへのアクセスを許可する場合.ユーザー登録は必要ありません.
Sambaでは,独自の認証情報を元にアクセスの許可が可能です.
pdbeditによってSambaで認証するためのユーザを,マシンのユーザとは別に新たに登録できます.

$ sudo pdbedit -a "username"

登録の際,パスワードの設定も要求されるのでパスワードを設定します.

new password:
retype new password:

共有するディレクトリの設定

ここでは,/mnt/shareを共有ディレクトリとします.

$ sudo mkdir /mnt/share
$ sudo chmod 0777 /mnt/share

shmodコマンドはファイル,ディレクトリのアクセス権限を変更するコマンドです.
アクセス権限は読み込み(r),書き込み(w),実行(x)の三区分で設定されます.
0777と指定した場合,全てのユーザーに全てのアクセス権限を許可されます.

Windowsのワークグループ名を確認

LAN内のWindowsマシンで設定しているワークグループ名が必要です.
ワークグループ名の確認,設定は
コントロールパネル->システムとセキュリティ->システム->コンピュータ名、ドメインおよびワークグループの設定の項目で確認できます.

/etc/samba/smb.confを編集

以下のコマンドでsmb.confを開き,編集します.
エディタは,本記事では例としてVimを使用します.

$ sudo vi /etc/samba/smb.conf

まず,24行目如何に

dos charset = CP932
unix charset = UTF-8

を追記します.

smb.conf
 21 
 22 #======================= Global Settings =======================
 23 
 24 [global]
 25 dos charset = CP932
 26 unix charset = UTF-8
 27 

次に,31行目のworkgroupに,先ほど調べたWindowsマシンのWORKSTATIONの名前を書き込みます.

smb.conf
 28 ## Browsing/Identification ###
 29
 30 # Change this to the workgroup/NT-domain name your Samba server will part of
 31    workgroup = <your work group name>
 32

38行目以降のNetworkingの項目は,セキュリティの観点から接続元のIPアドレスを制限したいときに編集します.

smb.conf
 35 #### Networking ####
 34 
 35 # The specific set of interfaces / networks to bind to
 36 # This can be either the interface name or an IP address/netmask;
 37 # interface names are normally preferred
 38    interfaces = 127.0.0.0/8 eth0
 39
 40 # Only bind to the named interfaces and/or networks; you must use the
 41 # 'interfaces' option above to use this.
 42 # It is recommended that you enable this feature if your Samba machine is
 43 # not protected by a firewall or is a firewall itself.  However, this
 44 # option cannot handle dynamic or non-broadcast interfaces correctly.
 45     bind interfaces only = yes
 46     map to guest = Bad User
 47

ファイルの最後に以下を追記します.

smb.conf
239 [share]
240    path = /mnt/share
241    writable = yes
242    guest ok = yes
243    guest only = yes
244    create mode = 0777
245    directory mode = 0777

[share]には,共有する際のディレクトリ名(Windowsから見える名前)を設定します.
例えば,共有ディレクトリ名をDIRとしたい場合,[DIR]とします.
pathには共有するディレクトリのパスを記入します.

Sambaの実行テスト

testparmコマンドを使うと,smb.confに誤りがないか構文チェックをしてくれます.
logファイルの関係でWARNINGが出る可能性がありますが,
Loaded services file OK.と出れば問題ありません.

$ testparm

Sambaを実行

下記コマンドを実行.

$ sudo systemctl restart smbd nmbd

起動時に自動的に実行して欲しい場合.

$ sudo systemctl enable smbd nmbd

Windowsで共有ファイルにアクセス

エクスプローラーにて『ネットワークドライブの割り当て』からアクセスします.

sa.PNG

『フォルダー』欄に『¥¥SambaサーバのIPアドレス¥先に設定した共有ディレクトリ名』を入力します.

アクセスできた場合,ユーザの認証が要求されるので,アクセス先のマシンのユーザ名とパスワードを,Sambaのユーザを設定している場合はSambaサーバのユーザ名とパスワードを記入します.

samba2.PNG

アクセスに成功した場合

ネットワークの場所に共有ディレクトリの項目が表示されます.

参考記事

Ubuntuでファイルサーバーをたてる(Samba)

フルアクセスの共有フォルダ作成

raspberry pi : sambaのインストール

73
96
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
73
96