著者は、 Write forDOnationsプログラムの一環として寄付を受け取るためにTechEducationFundを選択しました。

序章

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

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

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

前提条件

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

  • ルート以外のsudoユーザーがいるUbuntu16.04サーバー。 詳細については、Ubuntu16.04初期サーバーセットアップガイドを参照してください。 Sambaには適度なRAMとCPUの要件があり、1GBのサーバーで適切に機能します。 ストレージスペースが不足する可能性が高いため、サーバーサイズを選択する際には、これを主な考慮事項にする必要があります。

  • ポート445で許可される着信TCP接続。 UFW ファイアウォールを使用している場合は、UbuntuおよびDebianクラウドサーバーでUFWを使用してファイアウォールを設定する方法を参照してください。 別のファイアウォールまたは外部ファイアウォールを使用している場合は、関連するドキュメントを参照してください。

ステップ1—Sambaのインストール

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

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

  1. sudo apt-get update

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

  1. sudo apt-get install samba

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

  1. sudo systemctl stop nmbd.service
  2. sudo systemctl disable nmbd.service

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

Output
nmbd.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サーバーを停止しましょう。

  1. sudo systemctl stop smbd.service

これでSambaがインストールされ、構成する準備が整いました。

ステップ2—Sambaのグローバルオプションを設定する

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

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

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

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

  1. ip link
Output
1: lo: <LOOPBACK,UP,LOWER_UP> 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: <BROADCAST,MULTICAST,UP,LOWER_UP> 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またはお気に入りのエディターでこのファイルの編集を始めましょう。

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

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

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

  1. testparm

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

Output
Load 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つの部分で構成されており、ログインとテストを可能にするために、両方を作成して構成する必要があります。 次のセクションでは、共有にアクセスできるユーザーを作成する方法について説明します。

ステップ3—ユーザーの作成

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

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

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

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

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

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

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

  1. sudo mkdir /samba/
  2. sudo chown :sambashare /samba/

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

  1. sudo mkdir /samba/david

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

  1. 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ホームディレクトリに所有権と権限を設定できます。

  1. sudo chown david:sambashare /samba/david/
  2. sudo chmod 2770 /samba/david/

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

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

  1. sudo smbpasswd -a david
  2. sudo smbpasswd -e david

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

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

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

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

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

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

  1. sudo mkdir /samba/everyone
  2. sudo adduser --home /samba/everyone --no-create-home --shell /usr/sbin/nologin --ingroup sambashare admin
  3. sudo chown admin:sambashare /samba/everyone/
  4. sudo chmod 2770 /samba/everyone/
  5. sudo smbpasswd -a admin
  6. sudo smbpasswd -e admin

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

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

  1. sudo groupadd admins
  2. sudo usermod -G admins admin

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

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

ステップ4—Samba共有の構成

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

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

  1. 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

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

mike jane 、および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

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

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

  1. testparm

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

Output
Load 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サーバーを起動しましょう。

  1. sudo systemctl start smbd.service

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

ステップ5—Sambaサーバーにログインする

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

Linux —コマンドライン

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

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

  1. sudo apt-get update
  2. sudo apt-get install smbclient

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

  1. sudo dnf update
  2. sudo samba-client

そしてCentOSでは:

  1. sudo yum update
  2. sudo yum install samba-client

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

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

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

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

  1. smbclient //your_samba_hostname_or_server_ip/share -U username

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

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

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

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

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

smb: \>

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

  1. mkdir test
  2. 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

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

  1. rmdir test

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

Linux —Dolphinを使用したKDE

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

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

  1. 場所リストからネットワークを選択します。
  2. ネットワークフォルダの追加をクリックします。 Image showing Network highlighted in the Places list
  3. MicrosoftWindowsネットワークドライブオプションを選択します。
  4. 次へをクリックします
  5. Samba共有の詳細を入力します。 名前-これは、共有のためにDolphinにブックマークとして表示される覚えやすい名前です。 サーバー-これは、Sambaサーバーのホスト名またはIPアドレスです。 この例では、samba.example.comになります。 フォルダ-これは、smb.confで設定された共有の名前です。
  6. クリック保存して接続
  7. Samba共有にアクセスするユーザーのユーザー名とパスワードを入力します。
  8. OKをクリックします。

Dolphinが接続し、Samba共有を開きます。これは次のようになります。

Image showing Dolphin connected to a Samba share

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

MacOS —コマンドライン

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

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

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

  1. mkdir samba

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

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

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

  1. sudo mount_smbfs //david@samba.example.com/david ./samba

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

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

  1. umount samba

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

MacOS —デスクトップ

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

次の手順を実行します。

  1. Finder を開き、メニューバーのGoをクリックします。
  2. オプションのリストからサーバーに接続をクリックします。
  3. ユーザー名、ホスト名またはサーバーIP、および共有の名前を含むsmb://形式のURLを使用します:smb://username@your_samba_hostname_or_server_ip/share。 ここに示す例では、ユーザー名davidとホスト名samba.example.comが表示されます。
  4. + の記号が付いたボタンをクリックして、Samba共有をブックマークします。
  5. 接続Image showing samba share connection detailsをクリックします
  6. 登録ユーザーを選択します
  7. Samba共有ユーザーのユーザー名とパスワードを入力します。
  8. macOSにパスワードを保存するかどうかを決定します。
  9. 接続をクリックします。

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

Image showing contents of connected share

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

Windows 10 —コマンドライン

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

  1. net use drive_letter \\your_samba_hostname_or_server_ip\share

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

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

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

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

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

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

Windows 10 —デスクトップ

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

  1. このPCを右クリックします。
  2. 次のページでネットワークの場所を追加をクリックしてから次へをクリックします。 Image showing the context menu for This PC
  3. をクリックします。カスタムネットワークの場所を選択します
  4. 次へをクリックします
  5. SambaサーバーのWindowsスタイルのアドレスと共有名を入力します。 Windowsは、次の形式のSamba URLを使用します:\\your_samba_hostname_or_server_ip\share\。 サンプルイメージでは、サーバー名はsamba.example.comであり、共有名はdavid\\samba.example.com\davidです。
  6. 次へをクリックします。
  7. ユーザーのユーザー名とパスワードを入力します。
  8. Windowsにパスワードを記憶させるかどうかを決定します。
  9. OKをクリックします。

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

Image showing Samba share under This PC

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

結論

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

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

Sambaは、単純なファイル共有として機能するだけでなく、ドメインコントローラーまたはドメインのメンバーとしてWindowsActiveDirectoryと連携できます。 Samba Wiki ユーザードキュメントには、これを行う方法の詳細が含まれています。