アンドロイド

Ubuntu 18.04にSambaをインストールして設定する方法

Ubuntu 18.04: What's New?

Ubuntu 18.04: What's New?

目次:

Anonim

Sambaは、SMB / CIFSネットワークファイル共有プロトコルの無料でオープンソースの再実装であり、エンドユーザーがファイル、プリンター、その他の共有リソースにアクセスできるようにします。

このチュートリアルでは、SambaをUbuntu 18.04にインストールし、スタンドアロンサーバーとして構成して、ネットワーク経由で異なるオペレーティングシステム間でファイル共有を提供する方法について説明します。

次のSamba共有とユーザーを作成します。

ユーザー:

  • sadmin-すべての共有への読み取りおよび書き込みアクセス権を持つ管理ユーザー。 josh-独自のプライベートファイル共有を持つ通常のユーザー。

株:

  • ユーザー -この共有には、すべてのユーザーが読み取り/書き込み権限でアクセスできます。 josh-この共有は、ユーザーjoshとsadminのみが読み取り/書き込み権限でアクセスできます。

ファイル共有には、ネットワーク上のすべてのデバイスからアクセスできます。 このチュートリアルの後半では、Linux、Windows、およびmacOSクライアントからSambaサーバーに接続する方法の詳細な手順も提供します。

前提条件

続行する前に、sudo特権を持つユーザーとしてUbuntu 18.04システムにログインしていることを確認してください。

UbuntuにSambaをインストールする

Sambaは、公式のUbuntuリポジトリから入手できます。 Ubuntuシステムにインストールする手順は次のとおりです。

  1. aptパッケージインデックスを更新することから始めます。

    sudo apt update

    次のコマンドでSambaパッケージをインストールします。

    sudo apt install samba

    インストールが完了すると、Sambaサービスが自動的に開始されます。 Sambaサーバーが実行されているかどうかを確認するには、次のように入力します。

    sudo systemctl status smbd

    出力は、Sambaサービスがアクティブで実行中であることを示す以下のようになります。

    ● smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-11-27 09:25:38 UTC; 2min 12s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Main PID: 15142 (smbd) Status: "smbd: ready to serve connections…" Tasks: 4 (limit: 1152) CGroup: /system.slice/smbd.service…

この時点で、Sambaがインストールされ、構成の準備ができています。

ファイアウォールの構成

UFW を使用してファイアウォールを管理していると仮定すると、「Samba」プロファイルを有効にしてポートを開くことができます。

sudo ufw allow 'Samba'

グローバルSambaオプションの構成

Samba構成ファイルに変更を加える前に、将来の参照のためにバックアップを作成します。

sudo cp /etc/samba/smb.conf{,.backup}

Sambaパッケージに付属しているデフォルトの構成ファイルは、スタンドアロンSambaサーバー用に構成されています。 ファイルを開き、 server role standalone server 設定されていることを確認し standalone server

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

… # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = standalone server…

デフォルトでは、Sambaはすべてのインターフェースをリッスンします。 内部ネットワークからのみSambaサーバーへのアクセスを制限する場合は、次の2行のコメントを解除し、バインドするインターフェイスを指定します。

/etc/samba/smb.conf

… # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred interfaces = 127.0.0.0/8 eth0 # Only bind to the named interfaces and/or networks; you must use the # 'interfaces' option above to use this. # It is recommended that you enable this feature if your Samba machine is # not protected by a firewall or is a firewall itself. However, this # option cannot handle dynamic or non-broadcast interfaces correctly. bind interfaces only = yes…

完了したら、 testparm ユーティリティを実行して、Samba構成ファイルのエラーを確認します。 構文エラーがない場合、 Loaded services file OK. と表示 Loaded services file OK.

最後に、次を使用してSambaサービスを再起動します。

sudo systemctl restart smbd sudo systemctl restart nmbd

Sambaユーザーとディレクトリ構造の作成

標準のホームディレクトリ( /home/user )を使用する代わりに、保守性と柔軟性を高めるために、すべてのSambaディレクトリとデータは /samba ディレクトリに配置されます。

/samba ディレクトリタイプを作成するには:

sudo mkdir /samba

グループ所有権を sambashare 設定し sambashare 。 このグループはSambaのインストール中に作成されます。後でこのグループにすべてのSambaユーザーを追加します。

sudo chgrp sambashare /samba

SambaはLinuxユーザーおよびグループ許可システムを使用しますが、標準のLinux認証とは別の独自の認証メカニズムを備えています。 標準のLinux useradd ツールを使用してユーザーを作成し、 smbpasswd ユーティリティでユーザーパスワードを smbpasswd ます。

はじめに説明したように、プライベートファイル共有にアクセスできる通常のユーザーと、Sambaサーバー上のすべての共有に対する読み取りおよび書き込みアクセス権を持つ1つの管理アカウントを作成します。

Sambaユーザーの作成

josh という名前の新しいユーザーを作成するには、次のコマンドを使用します。

sudo useradd -M -d /samba/josh -s /usr/sbin/nologin -G sambashare josh

useradd オプションには次の意味があります。

  • -M-ユーザーのホームディレクトリを作成しません。 このディレクトリを手動で作成します。 -d /samba/josh ユーザーのホームディレクトリを /samba/josh 設定します。 -s /usr/sbin/nologin このユーザーのシェルアクセスを無効にします。 -G sambashare ユーザーを sambashare グループに追加します。

ユーザーのホームディレクトリを作成し、ディレクトリ所有権をユーザー josh およびグループ sambashare 設定します。

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

次のコマンドは、 /samba/josh ディレクトリにsetgidビットを追加して、このディレクトリに新しく作成されたファイルが親ディレクトリのグループを継承するようにします。 この方法では、どのユーザーが新しいファイルを作成しても、ファイルには sambashare グループ所有者が sambashare ます。 たとえば、ディレクトリのアクセス許可を 2770 設定せず、 sadmin ユーザーが新しいファイルを作成すると、ユーザー josh はこのファイルの読み取り/書き込みができなくなります。

sudo chmod 2770 /samba/josh

ユーザーパスワードを設定して、 josh ユーザーアカウントをSambaデータベースに追加します。

sudo smbpasswd -a josh

ユーザーパスワードの入力と確認を求められます。

New SMB password: Retype new SMB password: Added user josh.

パスワードを設定して、Sambaアカウントを有効にします。

sudo smbpasswd -e josh

Enabled user josh.

別のユーザーを作成するには、ユーザー josh 作成するときと同じプロセスを繰り返します。

次に、ユーザーとグループ sadmin 作成しましょう。 このグループのすべてのメンバーには管理権限があります。 後で別のユーザーに管理アクセス許可を付与する場合は、そのユーザーを sadmin グループに追加するだけです。

次のように入力して、管理ユーザーを作成します。

sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin

上記のコマンドは、グループ sadmin を作成し、 sadmin グループと sambashare グループの両方にユーザーを追加します。

パスワードを設定し、ユーザーを有効にします。

sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin

次に、 Users 共有ディレクトリを作成し Users

sudo mkdir /samba/users

ディレクトリの所有権をユーザー sadmin およびグループ sambashare 設定します。

sudo chown sadmin:sambashare /samba/users

このディレクトリには、すべての認証済みユーザーがアクセスできます。 次の chmod コマンドは、 /samba/users ディレクトリ内の sambashare グループのメンバーに書き込み/読み取りアクセスを許可し /samba/users

sudo chmod 2770 /samba/users

Samba共有の構成

Samba構成ファイルを開き、セクションを追加します。

sudo nano /etc/samba/smb.conf /etc/samba/smb.conf

path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin path = /samba/josh browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = josh @sadmin

オプションには次の意味があります。

  • そして -ログイン時に使用する共有の名前。path-共有へのパス。 browseable -共有を使用可能な共有リストにリストするかどうか。 他のユーザーを「 no 設定すると、共有を表示できなくなります。 read only - valid users リストで指定された valid users がこの共有に書き込むことができるかどうか。 force create mode -この共有で新しく作成されたファイルのアクセス許可を設定します。 force directory mode -この共有に新しく作成されたディレクトリのアクセス許可を設定します。 valid users -共有へのアクセスが許可されているユーザーとグループのリスト。 グループの前には @ 記号が付きます。

利用可能なオプションの詳細については、Samba構成ファイルのドキュメントページを参照してください。

完了したら、次を使用してSambaサービスを再起動します。

sudo systemctl restart smbd sudo systemctl restart nmbd

以下のセクションでは、Linux、macOS、およびWindowsクライアントからSamba共有に接続する方法を示します。

LinuxからSamba共有への接続

Linuxユーザーは、ファイルマネージャーを使用してコマンドラインからSamba共有にアクセスするか、Samba共有をマウントできます。

smbclientクライアントを使用する

smbclient は、コマンドラインからSambaにアクセスできるツールです。 smbclient パッケージは、ほとんどのLinuxディストリビューションにプリインストールされていないため、配布パッケージマネージャーでインストールする必要があります。

UbuntuおよびDebianに smbclient をインストールするには:

sudo apt install smbclient

CentOSおよびFedoraに smbclient をインストールするには:

sudo yum install samba-client

Samba共有にアクセスするための構文は次のとおりです。

mbclient //samba_hostname_or_server_ip/share_name -U username

たとえば、ユーザー josh としてIPアドレス 192.168.121.118 Sambaサーバー上の josh という名前の共有に接続するには、次の josh を実行します。

smbclient //192.168.121.118/josh -U josh

ユーザーパスワードの入力を求められます。

Enter WORKGROUP\josh's password:

パスワードを入力すると、Sambaコマンドラインインターフェイスにログインします。

Try "help" to get a list of possible commands. smb: \>

Samba共有のマウント

LinuxでSamba共有をマウントするには、まず cifs-utils パッケージをインストールする必要があります。

UbuntuおよびDebianで実行:

sudo apt install cifs-utils

CentOSおよびFedoraで実行:

sudo yum install cifs-utils

次に、マウントポイントを作成します。

sudo mkdir /mnt/smbmount

次のコマンドを使用して共有をマウントします。

sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount

たとえば、 josh という名前の共有をIPアドレス 192.168.121.118 Sambaサーバーにユーザー josh として /mnt/smbmount マウントポイントにマウントするには、 /mnt/smbmount を実行します。

sudo mount -t cifs -o username=josh //192.168.121.118/josh /mnt/smbmount

ユーザーパスワードの入力を求められます。

Password for josh@//192.168.121.118/josh: ********

GUIを使用する

Gnomeのデフォルトファイルマネージャーであるファイルには、Samba共有にアクセスするための組み込みオプションがあります。

  1. ファイルを開き、サイドバーの「その他の場所」をクリックします。「サーバーに接続」で、次の形式でSamba共有のアドレスを入力します smb://samba_hostname_or_server_ip/sharename 。「接続」をクリックすると、次の画面が表示されます。

結論

このチュートリアルでは、Ubuntu 18.04にSambaサーバーをインストールし、さまざまなタイプの共有ユーザーとユーザーを作成する方法を学びました。 また、Linux、macOS、およびWindowsデバイスからSambaサーバーに接続する方法も示しました。

サンバUbuntu