Ubuntu 16.04で小規模組織のSamba共有を設定する方法

著者は、Write for DOnationsプログラムの一部として寄付を受け取るためにTech Education Fundを選択しました。

前書き

Sambaは、ファイルやプリンターへのアクセス、Active Directoryなどの共有サービスのためにWindows環境で使用されるSMB/CIFS networking protocolのオープンソース実装です。 Sambaを使用して、standalone serverと呼ばれる構成でクロスプラットフォームのファイル共有を作成することもできます。

このガイドでは、スタンドアロンのSambaサーバーをインストールして構成し、Example.comと呼ばれる架空の小さな組織にネットワーク化されたファイルストアまたはsharesを提供します。 この組織には、ファイル共有に関するいくつかの要件があります.1。 すべての従業員には、個人的なプライベートファイル共有が必要です。 2。 すべての従業員には、共通のファイル共有に対する読み取りおよび書き込みアクセス権が必要です。 3。 管理ユーザーには、すべての個人共有および共有の所有権に対する読み取りおよび書き込みアクセス権が必要です。

Sambaサーバーはこれらの要件をすべて満たします。 また、Windows、Linux、およびmacOSから共有にアクセスする方法も学習します。

前提条件

このガイドを始める前に、次のものが必要です。

  • 非ルートsudoユーザーを持つUbuntu 16.04サーバー。 詳細については、Ubuntu 16.04 initial server setupガイドを参照してください。 Sambaには控えめなRAMとCPUの要件があり、1GBサーバーで十分に機能します。 ストレージ容量が不足する可能性が高いため、サーバーのサイズを選択する際にはこれが第一の考慮事項になります。

  • ポート445で許可される着信TCP接続。 UFWファイアウォールを使用している場合は、How To Set Up a Firewall with UFW on an Ubuntu and Debian Cloud Serverを参照してください。 別のファイアウォールまたは外部ファイアウォールを使用している場合は、関連するドキュメントを参照してください。

[[step-1 -—- installing-samba]] ==ステップ1—Sambaのインストール

Ubuntuのパッケージ管理システムを使用してSambaをインストールすることから始めましょう。

新しいパッケージをインストールする前に、ローカルパッケージインデックスを更新して、Ubuntuリポジトリの最新バージョンを含めましょう。

sudo apt-get update

次に、Sambaをインストールします。

sudo apt-get install samba

このコマンドは、SambaサーバーsmbdとSamba NetBIOSサーバーnmbdの両方をインストールして起動します。 このチュートリアルではnmbdは必要ないため、セキュリティ上の理由から、systemctlを使用して停止および無効化できます。

sudo systemctl stop nmbd.service
sudo systemctl disable nmbd.service

sudo systemctl disable nmbd.serviceコマンドを実行すると、次の出力が生成されます。

Outputnmbd.service is not a native service, redirecting to systemd-sysv-install
Executing /lib/systemd/systemd-sysv-install disable nmbd
insserv: warning: current start runlevel(s) (empty) of script `nmbd' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `nmbd' overrides LSB defaults (0 1 6).

この出力は、nmbdにネイティブのsystemd管理構成がないため、古いSysVinitシステムによって無効にされていることを示しています。

未構成のネットワーク対応サービスを実行することで発生する可能性のあるセキュリティ問題を回避するために、構成の詳細が設定されるまでSambaサーバーを停止しましょう。

sudo systemctl stop smbd.service

これでSambaがインストールされ、構成の準備ができました。

[[step-2 -—- setting-samba-39-s-global-options]] ==ステップ2—Sambaのグローバルオプションの設定

/etc/samba/smb.confにある構成ファイルを変更して、Sambaサーバーがどのように動作するかを定義しましょう。 このファイルには、[global]セクションと[shares]セクションの2つの部分があります。 [global]セクションはSambaサーバーの動作を構成し、[shares]セクションはファイル共有を構成します。 [global]セクションでディレクティブを設定することから始めましょう。

/etc/samba/smb.confを直接編集するのではなく、名前をsmb.conf.originalに変更し、smb.confという名前の新しいファイルを作成します。

sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig

/etc/samba/smb.confを編集する前に、Sambaに認識すべきインターフェースを指示するために、使用可能なインターフェースを確認しましょう。 次を入力します。

ip link
Output1: lo:  mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0:  mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000
    link/ether 02:21:2c:03:ef:e2 brd ff:ff:ff:ff:ff:ff

この出力は、loがループバックインターフェイスであり、eth0が外部ネットワークインターフェイスであることを示していますが、外部インターフェイスは異なる場合があります。 両方に注意してください。smb.confファイルの[global]セクションのinterfacesディレクティブにそれらを含めます。

このファイルの編集をnanoまたはお気に入りのエディターで始めましょう。

sudo nano /etc/samba/smb.conf

このファイルの[global]セクションは、サーバーの名前、役割、およびネットワークインターフェイスを含むその他の詳細を定義します。

/etc/samba/smb.conf

[global]
        server string = samba_server
        server role = standalone server
        interfaces = lo your_network_interface
        bind interfaces only = yes
        disable netbios = yes
        smb ports = 445
        log file = /var/log/samba/smb.log
        max log size = 10000

これらのディレクティブは次を指定します。

  • server string-これは、接続中にユーザーに提供される識別情報です。 サーバーを識別するsamba_serverまたは別の名前を使用できます。 このチュートリアル全体を通して、組織Example.comのSamba共有を示す文字列samba.example.comが表示されます。

  • server role-これは、作成されるSambaサーバーのタイプを定義します。 この場合、それはstandalone serverです。つまり、 ファイル共有。 他のサーバーの種類には、ドメインメンバーサーバーとドメインコントローラーが含まれます。

  • interfaces-これらはSambaがバインドするネットワークインターフェースです。 loはループバックインターフェイス(127.0.0.1)であり、必須です。 前に出力した外部ネットワークインターフェイスも含める必要があります。 これは通常eth0です。

  • bind interfaces only-これにより、Sambaはinterfaces行にリストされているインターフェースにのみバインドされます。 セキュリティ対策として、これによりSambaは指定されたinterfacesに対応しないパケットを無視します。

  • disable netbios-これにより、スタンドアロンサーバーでは不要なすべてのNetBIOS機能が無効になります。 これにより、サーバーの名前解決プロセスとSMBトラフィックの転送が簡素化されます。

  • smb ports-これは、Sambaがリッスンするポートを設定します。 ポート445はSambaの標準ポートです。

  • log file-これは、Sambaのログファイルの名前と場所を設定します。

  • max log size-これはログファイルのサイズ制限を設定します。 リストされている数値はバイト単位で、10MBに相当します。 このサイズ制限を設定する際に留意すべき点がいくつかあります。サイズ制限に達すると、Sambaは新しいログファイルを生成し、古いコンテンツを.old拡張子の重複に移動します。 制限を再度超えると、既存の.oldファイルが破棄されます。 これにより、単一のログファイルの内容でディスク/パーティションスペースが圧迫されるのを防ぎます。 したがって、システムリソースに適したファイルサイズを定義する必要があります。

サーバーのセットアップ中にさらに詳細なログが必要な場合は、[global]セクションに次の行を追加します。

/etc/samba/smb.conf

        log level = 3 passdb:5 auth:5

これにより、ログレベルが3(情報)に設定され、ログ情報の粒度がデフォルト設定の1から増加します。 passdbおよびauthデバッグクラスの5の高い設定は、ユーザー認証に関連するより多くの情報を提供します。

このセクションの作成が終了したら、ファイルを保存して閉じます。

smb.confを編集するときはいつでも、Sambaユーティリティtestparmを実行して、構文エラーがないことを確認する必要があります。

testparm

smb.confファイルでtestparmコマンドを実行すると、次の出力が生成されます。

OutputLoad smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

ENTERを押すと、次の出力が生成されます。

Output# Global parameters
[global]
        server string = samba_server
        interfaces = lo your_network_interface
        bind interfaces only = Yes
        server role = standalone server
        log file = /var/log/samba/smb.log
        max log size = 10000
        smb ports = 445
        disable netbios = Yes
        idmap config * : backend = tdb

testparmLoaded services file OK.を報告する場合、Sambaサーバーの起動を停止する構文エラーはありません。

Sambaサーバーを起動するために必要なのは、[global]セクションの構成だけです。 ただし、共有構成なしでは機能が制限されます。 共有は、ユーザーとディレクトリの2つの部分で構成されます。両方とも、ログインとテストを許可するように作成および構成する必要があります。 次のセクションでは、共有にアクセスできるユーザーを作成する方法について説明します。

[[step-3 -—- creating-users]] ==ステップ3—ユーザーの作成

この手順では、共有にアクセスできるユーザーを作成します。 彼らは、ログインしてファイルシステムに読み書きするときにSambaサーバーで認証するために、Sambaおよびシステムユーザーとしてアクセスする必要があります。

架空の会社Example.comには、Sambaサーバーに追加し、Linuxシステムでユーザーとして作成する必要がある4人の従業員がいます:davidmikejane、およびlucy。 これらの4つに加えて、個人共有にアクセスして管理できるadminユーザーが存在します。 このユーザーは、誰もがアクセスできる共有も所有します。

システムユーザーを追加する最初の手順は、ユーザーごとにホームディレクトリを作成することです。 /home/userで標準のホームディレクトリを使用するのではなく、Sambaディレクトリとデータは/samba/に配置されます。 Sambaデータを単一の場所に保持し、他のユーザーデータから分離すると、バックアップなどの将来の管理タスクが容易になります。

[.note]#Note:このガイドで作成されたユーザーは、SSHログインを意図していません。 ユーザーがすでにサーバーにアカウントを持っている場合は、このガイドに従うために、ユーザー専用のSambaユーザーを作成する必要があります。

次のセクションでは、最初のユーザーdavidを追加するプロセスについて説明しますが、mikejane、およびlucyに対してこのプロセスを繰り返す必要があります。

最初のステップは、ファイルシステムのルートに、Sambaデータが保存されるディレクトリを作成することです。 このディレクトリは/samba/と呼ばれ、そのグループの所有権は、Sambaのインストール時に作成されたグループであるsambashareに設定されます。

次のコマンドを実行して/samba/ディレクトリを作成し、グループの所有権をsambashareに設定します。

sudo mkdir /samba/
sudo chown :sambashare /samba/

次に、/samba/ディレクトリの下にdavidのホームディレクトリを作成します。

sudo mkdir /samba/david

ここで、次のコマンドを使用して、システムユーザーとしてdavidを追加します。

sudo adduser --home /samba/david --no-create-home --shell /usr/sbin/nologin --ingroup sambashare david

オプションは次のことを行います。

  • --home-これは、ユーザーのホームディレクトリの場所を設定します。

  • --no-create-home-これにより、adduserコマンドによるdavidのホームディレクトリの作成が停止します。 システムがこのディレクトリを作成する場合、現在のセットアップには不要な.bash_historyなどの構成ファイルが入力されます。

  • --shell-これは、SSHでログインしたときに割り当てられるシェルdavidを設定します。 Samba共有にアクセスするためにSSHログインは必要ありません。これを/usr/sbin/nologinに設定すると、SSHログインが無効になります。

  • --in-group sambashare-これにより、ユーザーがsambashareグループに追加され、自分の共有と共通の共有への読み取りおよび書き込みアクセスが可能になります。

このコマンドを実行すると、パスワードの入力を求められます。 10文字以上の、辞書に基づかない一意のパスワードを選択します。

システムユーザーdavidが存在するので、彼のSambaホームディレクトリに所有権と権限を設定できます。

sudo chown david:sambashare /samba/david/
sudo chmod 2770 /samba/david/

ディレクトリのアクセス許可を2770に設定すると、/samba/david/で作成された新しいファイルまたはディレクトリは、ファイルまたはディレクトリを作成したユーザーのプライマリグループではなく、親ディレクトリのグループ所有権を継承します。 これは、たとえば、adminユーザーがdavidの共有に新しいディレクトリを作成した場合、davidはそのディレクトリの読み取りと書き込みができることを意味します。

次に、davidをSambaサーバーに追加します。 Sambaは、ログインの認証に使用するユーザーとパスワードの独自のデータベースを保持しています。 ログインするには、すべてのユーザーをSambaサーバーに追加して有効にする必要があります。 次のsmbpasswdコマンドを実行して、これらのタスクの両方を実行します。

sudo smbpasswd -a david
sudo smbpasswd -e david

ここで使用されるオプションは次のことを行います。

  • -a-これにより、ユーザーは有効にせずにSambaサーバーに追加されます。

  • -e-これにより、以前に追加されたユーザーが有効になります。

ここで入力するパスワードは、Samba共有へのアクセスに使用され、システムパスワードとは異なる場合があります。

ユーザーdavidは、サーバーにSSH接続する機能を持たないシステムユーザーとして存在するようになりました。 彼は/samba/davidにホームディレクトリを持っており、Sambaユーザーとして登録および有効化されています。

すべてのSambaユーザー(mikejane、およびlucy)に対してこのプロセスを繰り返します。

adminユーザーを作成するには、次のコマンドを実行して、ホームディレクトリを/samba/everyone/に変更します。

sudo mkdir /samba/everyone
sudo adduser --home /samba/everyone --no-create-home --shell /usr/sbin/nologin --ingroup sambashare admin
sudo chown admin:sambashare /samba/everyone/
sudo chmod 2770 /samba/everyone/
sudo smbpasswd -a admin
sudo smbpasswd -e admin

adminユーザーの作成に加えて、サーバーの管理を容易にするためにadminsというグループを作成しましょう。 各共有に対する読み取りおよび書き込み権限があるため、このグループはユーザーの追加と削除の作業を簡素化できます。 たとえば、個々のユーザーがadminユーザーとして機能してから組織を離れる場合、各共有から個別に削除する必要があります。 新しい管理者もすべての共有に手動で追加する必要があります。 adminsグループを作成し、このグループに共有への読み取り/書き込みアクセス権を付与することは、ユーザーの追加と削除に必要なコマンドが1つだけであることを意味します。

次のコマンドを実行して、adminsという名前の新しいグループを作成し、ユーザーadminをこのグループに追加します。

sudo groupadd admins
sudo usermod -G admins admin

2番目のコマンドsudo usermod -G admins adminを実行し、adminの代わりに別のユーザーを使用することで、adminsグループにユーザーを追加できます。

これでシステム構成が完了し、組織Example.comのユーザーがシステムユーザーおよびSambaユーザーとして設定されました。 これらのユーザーが共有ディレクトリにアクセスできるように、Sambaサーバーの構成に移りましょう。

[[step-4 -—- configuring-the-samba-shares]] ==ステップ4—Samba共有の構成

各共有には、グローバルパラメータに従って、メインのSamba構成ファイル/etc/samba/smb.confに独自のセクションがあります。 これらのセクションでは、各共有の機能を定義します。

nanoテキストエディタを再度使用して、このファイルを開いて編集します。

sudo nano /etc/samba/smb.conf

次の構成ブロックは、各ユーザーの個人共有を定義します。

/etc/samba/smb.conf

...
[share_name]
        path =
        browseable =
        read only =
        force create mode =
        force directory mode =
        valid users =

これらのオプションは次のとおりです。

  • share_name-これは、ログイン時に使用する共有の名前です。

  • path-これはファイルシステム内の共有への絶対パスです。

  • browsable-これは、他のユーザーが共有を表示できるかどうかを設定します。 このオプションを有効にすると、Sambaサーバーの他のユーザーのみが共有の存在を確認できます。 読み取りまたは書き込み権限は付与されません。

  • read only-これは、valid usersが共有に書き込むことができるかどうかを設定します。

  • force create mode-これにより、共有に書き込まれるすべてのファイルのアクセス許可が強制されます。

  • force directory mode-これにより、共有で作成されたすべてのディレクトリのアクセス許可が強制されます。

  • valid users-これは、共有にアクセスできるユーザーのリストです。 この設定では、ユーザー名またはadminsなどのシステムグループを使用できます。 グループは、前に@を付けてリストする必要があります。 @admins

次のdavidの共有構成ブロックを追加し、ホームディレクトリ、このディレクトリのグループ所有権のアクセス許可、および共有にアクセスする必要があるユーザーを定義します。

/etc/samba/smb.conf

[david]
        path = /samba/david
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = david @admins

ディレクトリのアクセス許可により、グループの所有権が親ディレクトリの所有権に設定されることに注意してください。

mikejane、およびlucyの共有ブロックを作成します。 共有[name]path、およびvalid usersのみを変更して、各ユーザーの名前を反映させます。

[everyone]の共有は、[name]pathvalid users、およびbrowsableの両方のオプションで他の共有とは異なり、次のようになります。

/etc/samba/smb.conf

...
[everyone]
        path = /samba/everyone
        browseable = yes
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = @sambashare @admins

sambashareグループに共有への読み取り/書き込みアクセスを許可すると、作成時にこのグループに追加されたため、すべてのユーザーが共有にアクセスできるようになります。

完全なsmb.confファイルは次のようになります。

/etc/samba/smb.conf

[global]
        server string = samba_server
        server role = standalone server
        interfaces = lo your_network_interface
        bind interfaces only = yes
        disable netbios = yes
        smb ports = 445
        log file = /var/log/samba/smb.log
        max log size = 10000

[david]
        path = /samba/david
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = david @admins

[mike]
        path = /samba/mike
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = mike @admins

[jane]
        path = /samba/jane
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = jane @admins

[lucy]
        path = /samba/lucy
        browseable = no
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = lucy @admins

[everyone]
        path = /samba/everyone
        browseable = yes
        read only = no
        force create mode = 0660
        force directory mode = 2770
        valid users = @sambashare @admins

編集が終了したら、ファイルを保存して閉じます。

構成を再度テストします。

testparm

これにより、次のような出力が生成されます。

OutputLoad smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[david]"
Processing section "[jane]"
Processing section "[mike]"
Processing section "[lucy]"
Processing section "[everyone]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

構成チェックが完了したら、systemctlでSambaサーバーを起動しましょう。

sudo systemctl start smbd.service

これでSambaサーバーが実行され、ログインを受け入れる準備ができました。 次のステップは、Sambaサーバーにログインして、期待どおりに動作することをテストすることです。 次のセクションでは、Windows、Linux、macOSからSambaサーバーへのログインについて説明します。

[[step-5 --- logging-into-the-samba-server]] ==ステップ5—Sambaサーバーへのログイン

このセクションでは、Linux、Windows、macOSから作成したSamba共有にアクセスする方法について説明します。

[[linux -—-コマンドライン]] === Linux —コマンドライン

smbclientというツールを使用して、コマンドラインからSambaにアクセスできます。 このパッケージは、ほとんどのLinuxディストリビューションにはデフォルトで含まれていないため、ローカルパッケージマネージャーでインストールする必要があります。

DebianおよびUbuntuサーバーでは、次のコマンドを使用してsmbclientをインストールします。

sudo apt-get update
sudo apt-get install smbclient

Fedoraシステムでは、次を使用します。

sudo dnf update
sudo samba-client

CentOSの場合:

sudo yum update
sudo yum install samba-client

[。注意]##

Note:一部のLinuxディストリビューションでは、smbclientは次のエラーメッセージで失敗します。

Outputsmbclient: Can't load /etc/samba/smb.conf - run testparm to debug it

このエラーメッセージが表示された場合は、ファイルが/etc/samba/smb.conf
に作成されていることを確認してください。

smbclientは、次の形式を使用してSamba共有にアクセスします。

smbclient //your_samba_hostname_or_server_ip/share -U username

サーバーのIPまたは/etc/samba/smb.confで定義したホスト名のいずれかを使用して、共有にアクセスできます。 この例では、ホスト名samba.example.comを使用して、前の手順で作成したSambaサーバー上のdavidの共有にアクセスします。

smbclient //samba.example.com/david -U david

davidが普通株(everyone)にアクセスしたい場合は、コマンドを次のように変更します。

smbclient //samba.example.com/everyone -U david

smbclientコマンドを実行すると、Sambaパスワードの入力を求められ、FTPテキストインターフェイスを連想させるコマンドラインインターフェイスにログインします。

smb: \>

このインターフェイスは、ユーザー名とパスワード、および読み取り/書き込みアクセスのテストに最も役立ちます。 たとえば、次のようにディレクトリを作成し、その内容をリストできます。

mkdir test
ls

次のような出力が表示されるはずです。

Output  .                                   D        0  Fri Feb  2 14:49:01 2018
  ..                                  D        0  Wed Jan 24 12:11:33 2018
  test                                D        0  Fri Feb  2 14:49:01 2018

次のように入力して、ディレクトリを削除します。

rmdir test

多くの場合、GUIツールを使用すると、共有内のデータを簡単に管理できます。 次のセクションでは、KDEの組み込みGUIツールについて説明します。

[[linux -—- kde-with-dolphin]] === Linux —KDEとDolphin

DolphinはKDEのデフォルトのファイルマネージャーであり、Samba共有にアクセスするための組み込み機能を備えています。

Dolphinを開いた後、次の手順を実行します。

  1. PlacesリストからNetworkを選択します。

  2. Add Network Folderをクリックします。 Image showing Network highlighted in the Places list

  3. Microsoft Windows network driveオプションを選択します。

  4. Nextをクリックします

  5. Samba共有の詳細を入力します。

    • Name-これは、共有のDolphinにブックマークとして表示される覚えやすい名前です。

    • Server-これはSambaサーバーのホスト名またはIPアドレスです。 この例では、samba.example.comになります。

    • Folder-これは、smb.confで設定された共有の名前です。

  6. Save & Connectをクリックします。

  7. Samba共有にアクセスするユーザーのユーザー名とパスワードを入力します。

  8. OKをクリックします。

Dolphinは、次のようなSamba共有を接続して開きます。

Image showing Dolphin connected to a Samba share

Samba共有をローカルディレクトリであるかのように使用して、ファイルやディレクトリをコピー、削除、および名前変更できるようになりました。 共有は、Networkの場所に永続的なブックマークとしても表示されます。

[[macos -—-コマンドライン]] === MacOS —コマンドライン

MacOSには、Samba共有へのアクセスに使用できるコマンドラインツールがプリインストールされています。 Terminalアイコンをクリックして、Launchpadでターミナルを開きます。

これにより、ホームディレクトリにコマンドラインターミナルが開きます。 Samba共有をマウントするには、共有のマウントポイントとして機能する新しいディレクトリを作成できます。 マウントポイントは、2つのファイルシステムが結合される場所です。この場合、ローカルファイルシステムとリモートSambaファイルシステムです。

sambaという名前の新しいディレクトリを作成します。

mkdir samba

次に、Samba共有を新しいsambaディレクトリにマウントします。 このコマンドの形式は次のとおりです。

sudo mount_smbfs //username@your_samba_hostname_or_server_ip/share ./mount_point

Example.comの詳細をユーザーdavidに置き換えると、次のようになります。

sudo mount_smbfs //[email protected]/david ./samba

sambaディレクトリには、Example.com Sambaサーバー上のdavid共有の内容が表示されます。 ファイルとディレクトリは、lsrmmkdirなどの通常のツールで操作できます。ただし、共有がマウントされた後、sambaディレクトリはrootによって所有されます。 したがって、sambaディレクトリとその内容にアクセスするには、sudoを使用する必要があります。

Samba共有をアンマウントするには、mkdirコマンドを実行したのと同じディレクトリからumountコマンドを実行します。

umount samba

次のセクションでは、macOSのデスクトップGUIアプリケーションを使用したSamba共有へのアクセスについて説明します。

[[macos -—- desktop]] === MacOS —デスクトップ

MacOSは、Finderアプリケーションを使用してSamba共有にアクセスすることもできます。

以下の手順に従ってください。

  1. Finderを開き、メニューバーのGoをクリックします。

  2. オプションのリストからConnect to Serverをクリックします。

  3. ユーザー名、ホスト名またはサーバーIP、および共有の名前を含むsmb://形式のURLを使用します:smb://username@your_samba_hostname_or_server_ip/share。 ここに示す例では、ユーザー名davidとホスト名samba.example.comが表示されます。

  4. +記号の付いたボタンをクリックして、Samba共有をブックマークします。

  5. ConnectをクリックしますImage showing samba share connection details

  6. Registered Userを選択します

  7. Samba共有ユーザーのユーザー名とパスワードを入力します。

  8. macOSにパスワードを保存するかどうかを決定します。

  9. Connectをクリックします。

Samba共有に正常に接続すると、次のようにFinderに表示されます。

Image showing contents of connected share

次のセクションでは、Windows 10からSamba共有にアクセスする方法について説明します。

[[windows-10 -—-コマンドライン]] === Windows 10 —コマンドライン

WindowsコマンドラインからSamba共有をマウントするには、1つのコマンドのみが必要です。

net use drive_letter \\your_samba_hostname_or_server_ip\share

ユーザーdavidの共有から変数を置き換え、ドライブ文字をX:に設定します。

net use X: \\samba.example.com\david

このコマンドを入力すると、davidのユーザー名とパスワードの入力を求められます。 これらを入力すると、共有が正常にマウントされたという確認を受け取ります。

OutputEnter the user name for 'samba.example.com': david
Enter the password for samba.example.com:
The command completed successfully.

これで、ファイルエクスプローラーでSamba共有を参照し、コンピューターにローカルであるかのようにファイルとディレクトリを操作できるようになります。

次のセクションでは、Windows GUIツールを使用してSamba共有にアクセスする方法について説明します。

[[windows-10 -—- desktop]] === Windows 10 —デスクトップ

Windows 10には、Samba共有に接続するネイティブ機能もあります。 次の手順は、Samba共有に接続し、Windowsエクスプローラーを使用してブックマークとして保持します。 ファイルエクスプローラーを開いて、次の手順を開始します。

  1. This PCを右クリックします。

  2. 次のページでAdd a network locationをクリックしてからNextをクリックします。 Image showing the context menu for This PC

  3. Choose a custom network locationをクリックします。

  4. Nextをクリックします

  5. SambaサーバーのWindowsスタイルのアドレスと共有名を入力します。 Windowsは、次の形式のSamba URLを使用します:\your_samba_hostname_or_server_ip\share\。 サンプルイメージでは、サーバー名はsamba.example.comで、共有名はdavid\samba.example.com\davidです。

  6. Nextをクリックします。

  7. ユーザーのユーザー名とパスワードを入力します。

  8. Windowsにパスワードを記憶させるかどうかを決定します。

  9. OKをクリックします。

これで、File ExplorerはSamba共有に接続します。 接続が正常に完了すると、ファイルエクスプローラーのThis PCの下に新しい場所が作成されます。

Image showing Samba share under This PC

これで、このフォルダーを使用して、Samba共有内のファイルとフォルダーをローカルフォルダーであるかのように管理できるようになります。

結論

この記事では、Sambaサーバーを使用してクロスプラットフォームのオンラインファイル共有を作成しました。 また、Windows、Linux、およびmacOSからこれらの共有にアクセスしました。

Samba共有は非常に一般的になったため、多くのアプリケーションが保存されているデータにアクセスできます。 これらのアプリケーションは、Samba共有の機能と有用性を拡張できます。 たとえば、モバイルバージョンのメディアプレーヤーVLCは、Samba共有に接続して音楽やビデオをストリーミングできます。 アクセスするには、open MRLを選択し、標準のSamba URL:smb://username@your_samba_hostname_or_server_ip/shareを使用します。 クロスプラットフォームのバックアップユーティリティBackupPCを使用して、バックアップの宛先としてSamba共有を使用することもできます。

Sambaは、単純なファイル共有として機能することに加えて、ドメインコントローラまたはドメインのメンバーとしてWindows Active Directoryと連携できます。 Samba WikiUser Documentationには、これを行う方法の詳細が含まれています。