GNU/Linux >> Linux の 問題 >  >> Cent OS

ファイル共有用にCentOS8/RHEL8でSambaサーバーをセットアップする

このチュートリアルでは、ローカルネットワーク上でファイルを共有するためにCentOS 8/RHEL8にSambaサーバーをインストールして構成する方法を学習します。 Sambaは、UnixおよびLinux用の無料のオープンソースSMB / CIFSプロトコル実装であり、ローカルエリアネットワーク内のLinux、Windows、およびmacOSマシン間でファイルおよび印刷を共有できます。

Sambaは通常、Linuxにインストールされて実行されます。これは、異なるが関連する目的を果たすいくつかのプログラムで構成されており、そのうちの最も重要な2つは次のとおりです。

  • smbd :SMB / CIFSサービス(ファイル共有と印刷)を提供し、Windowsドメインコントローラーとしても機能します。
  • nmbd :このデーモンはNetBIOSネームサービスを提供し、ネームサーバー要求をリッスンします。また、Sambaサーバーをネットワーク上の他のコンピューターで検出することもできます。

CentOS 8/RHEL8にSambaサーバーをインストールする方法

SambaはほとんどのLinuxディストリビューションに含まれています。 CentOS 8 / RHEL8にSambaをインストールするには、ターミナルで次のコマンドを実行します。

sudo dnf install samba

Sambaのバージョンを確認するには、

を実行します。
smbd --version

サンプル出力:

Version 4.10.4

次に、次のコマンドを発行してsmbdを開始します およびnmbd サービス。

sudo systemctl start smb nmb

起動時に自動起動を有効にします。

sudo systemctl enable smb nmb

Sambaサービスが実行されているかどうかを確認するには、次のコマンドを発行します。

systemctl status smb nmb

開始すると、smb デーモンはTCPポート139および445でリッスンします。nmbd UDPポート137および138でリッスンします。

  • TCP 139:ファイルとプリンターの共有およびその他の操作に使用されます。
  • TCP 445:NetBIOSのないCIFSポート。
  • UDP 137:NetBIOSネットワークブラウジングに使用されます。
  • UDP 138:NetBIOSネームサービスに使用されます。

次のコマンドを実行して、ファイアウォールで上記のポートを開きます。

sudo firewall-cmd --permanent --add-service=samba

変更を有効にするためにファイアウォールデーモンをリロードします。

sudo systemctl reload firewalld

プライベートSamba共有を作成する

このセクションでは、アクセスするためにクライアントがユーザー名とパスワードを入力する必要があるプライベートSamba共有を作成する方法を説明します。メインのSamba構成ファイルは次の場所にあります:/etc/samba/smb.confnanoのようなコマンドラインテキストエディタを使用してターミナルで編集できます 。

sudo nano /etc/samba/smb.conf

デフォルトでは、4つのセクションがあります:

  • グローバル
  • プリンター
  • print $

[global]内 セクション、workgroup デフォルトではSAMBAに設定されています。

workgroup = SAMBA

workgroupの値を確認してください Windowsコンピュータのワークグループ設定と同じです。 Control Panelに移動すると、Windowsコンピューターの設定を確認できます。>System and Security>System

この記事では、Windowsのデフォルトのワークグループ名を使用します。

workgroup = WORKGROUP

hosts allowを使用することをお勧めします 不正アクセスを防ぐためのIPアドレスホワイトリストを作成するパラメータ。 [global]に次の行を追加します 192.168.0.0/24のローカルホストとクライアントを許可するセクション Sambaサービスにアクセスするためのネットワーク。別のネットワーク範囲を使用している場合は、192.168.0を置き換えてください 自分で。

hosts allow = 127. 192.168.0

ヒント:hosts allow = 127.0.0.1 192.168.0.0/24のようなネットワーク範囲にCIDR表記を使用することもできます。

次に、ファイルの一番下までスクロールします。 (nanoテキストエディタでは、CTRL+Wを押すことでそれを実現できます 次にCTRL+V 。 )以下のような新しいセクションを追加します。

[Private]
        comment = needs username and password to access
        path = /srv/samba/private/
        browseable = yes
        guest ok = no
        writable = yes
        valid users = @samba

場所:

  • Private Windowsコンピュータに表示されるフォルダ名です。好きな名前を使用できます。
  • コメントは共有フォルダの説明です。
  • pathパラメーターは、共有フォルダーへのパスを指定します。 /srv/samba/private/を使用しています 例として。
  • browseable = yes :ネットワーク内の他のコンピューターがSambaサーバーとSamba共有を表示できるようにします。 noに設定した場合、ユーザーはSambaサーバーの名前を知ってから、ファイルマネージャーに手動でパスを入力して共有フォルダーにアクセスする必要があります。
  • guest ok = no :ゲストアクセスを無効にします。つまり、共有フォルダにアクセスするには、クライアントコンピュータでユーザー名とパスワードを入力する必要があります。
  • writable = yes :クライアントに読み取りと書き込みの両方のアクセス許可を付与します。
  • valid users = @samba :SambaグループのユーザーのみがこのSamba共有にアクセスできます。

ファイルを保存して閉じます。 (nanoテキストエディタでファイルを保存するには、Ctrl+Oを押します。 、次にEnterキーを押して、書き込むファイル名を確認します。ファイルを閉じるには、Ctrl+Xを押します 。)次に、Sambaユーザーを作成する必要があります。まず、次のコマンドを使用して標準のLinuxユーザーアカウントを作成する必要があります。 usernameを置き換えます ご希望のユーザー名で。

sudo adduser username

Unixパスワードを設定するように求められます。その後、次のコマンドを使用して、新しいユーザーに個別のSambaパスワードを設定する必要もあります。

sudo smbpasswd -a username

sambaを作成します グループ。

sudo groupadd samba

そして、このユーザーをsambaに追加します グループ。

sudo gpasswd -a username samba

プライベート共有フォルダを作成します。

sudo mkdir -p /srv/samba/private/

samba グループには、共有フォルダーに対する読み取り、書き込み、および実行のアクセス許可が必要です。次のコマンドを実行して、これらの権限を付与できます。

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

また、このディレクトリにsamba_share_tというラベルを付ける必要があります。 SELinuxがSambaに読み取りと書き込みを許可するようにします。

sudo chcon -t samba_share_t /srv/samba/private/ -R

次に、次のコマンドを実行して、構文エラーがあるかどうかを確認します。

testparm

Samba構成ファイルは、変更された場合、1分ごとに自動的に再ロードされます。 smbdを手動で再起動できます およびnmbd 変更をすぐに有効にするためのデーモン。

sudo systemctl restart smb nmb

認証なしでSambaパブリックシェアを作成する方法

ユーザー名とパスワードを必要とせずに公開共有を作成するには、次の条件を満たす必要があります。

  • security = userを設定します Samba構成ファイルのグローバルセクションにあります。
  • map to guest = bad userを設定します Samba構成ファイルのグローバルセクションにあります。これにより、smbdが発生します ゲストアカウントを使用して、Sambaサーバーにアカウントを登録していないクライアントを認証します。ゲストアカウントであるため、Sambaクライアントはパスワードを入力する必要はありません。
  • guest ok = yesを設定します 共有定義でゲストアクセスを許可します。
  • パブリックフォルダの読み取り、書き込み、および実行のアクセス許可をnobodyに付与します アカウント。デフォルトのゲストアカウントです。

Samba構成ファイルを開いて編集します。

sudo nano /etc/samba/smb.conf

[global]内 セクションで、workgroupの値を確認してください Windowsコンピュータのワークグループ設定と同じです。

workgroup = WORKGROUP

Control Panelに移動すると、Windowsコンピューターの設定を確認できます。>System and Security>System

[global]に次の行を追加します セクション。

map to guest = bad user

次に、ファイルの一番下までスクロールして、次の行を貼り付けます。

[public]
       comment = public share, no need to enter username and password
       path = /srv/samba/public/
       browseable = yes
       writable = yes
       guest ok = yes

ファイルを保存して閉じます。次に、/srv/public/を作成します フォルダ。

sudo mkdir -p /srv/samba/public

パブリック共有での書き込み操作を許可する場合は、このフォルダーのアクセス許可を777に変更する必要があります。

sudo chmod 777 /srv/samba/public/ -R

また、このディレクトリにsamba_share_tというラベルを付ける必要があります。 SELinuxがSambaに読み取りと書き込みを許可するようにします。

sudo chcon -t samba_share_t /srv/samba/public/ -R

smbdとnmbdを再起動します。

sudo systemctl restart smb nmb

WindowsからSamba共有フォルダにアクセスする

同じネットワーク内にあるWindowsコンピューターで、ファイルエクスプローラーを開き、[Network]をクリックします。 左側のペイン。次のメッセージが表示された場合は、メッセージをクリックして、ネットワーク検出とファイル共有をオンにする必要があります。

File sharing is turned off. Some network computers and devices might not be visible.

次に、\\と入力します \\192.168.0.102のように、ファイルエクスプローラーのアドレスバーにSambaサーバーのIPアドレスが続きます。 。 Sambaサーバー上の共有リソースのリストが表示されます。

次に、共有フォルダをダブルクリックします。プライベート共有にアクセスするには、sambaのユーザー名とパスワードを入力する必要があります。パブリックシェアにアクセスするためにそうする必要はありません。

接続すると、Samba共有フォルダー内のファイルの読み取り、書き込み、および削除を行うことができます。

接続エラー

次のエラーが発生した場合:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

コマンドプロンプトからSamba共有に接続してみることができます。コマンドプロンプトを開き、次のコマンドを実行して現在のSambaセッションを閉じます。

net use \\samba-server-ip\share-name /delete

次に、次のコマンドを使用してSamaba共有に接続します。

net use \\samba-server-ip\share-name /user:samba-username password

上記のコマンドが正常に完了すると、ファイルエクスプローラーの[ネットワーク]タブに移動し、Samba共有にアクセスできるようになります。

ドライブマッピング

Windowsオペレーティングシステムの機能の1つは、ドライブ文字(S :など)をリモートディレクトリにマップする機能です。ドライブ文字をマップするにはS: Samba共有に移動するには、Samba共有フォルダを右クリックして、ネットワークドライブのマッピングを選択します。 。次に、ドライブ文字を選択して[完了]をクリックします。

ドライブマッピングが確立されると、アプリケーションはドライブ文字S:を介してSamba共有内のファイルにアクセスできます。 。また、このSamba共有は、Windowsコンピューターにログインすると自動的にマウントされます。

Linux上のNautilusファイルマネージャーでSamba共有フォルダーにアクセスする

Nautilusファイルマネージャーを使用している場合は、[Other Locations]をクリックします 左側のペイン。下部に、サーバーに接続するオプションが表示されます。 。 Samba共有にアクセスするには、smb://と入力します 続いてSambaサーバーのIPアドレスを入力し、Enterキーを押します。例:

  • smb://192.168.0.102

Sambaサーバー上の共有リソースのリストが表示されます。

プライベート共有フォルダをクリックした場合は、Sambaのユーザー名とパスワードを入力する必要があります。パブリック共有フォルダをクリックした場合は、匿名で接続することを選択します。

LinuxのコマンドラインからSamba共有を自動的にマウントする

起動時にSamba共有を自動的にマウントする必要がある場合は、コマンドラインを使用してマウントし、/etc/fstabにエントリを追加できます。 ファイル。これを行うには、cifs-utilsをインストールする必要があります パッケージ。

CentOS / RHEL

sudo dnf install cifs-utils

Debian / Ubuntu

sudo apt install cifs-utils

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

sudo mkdir /mnt/samba-private

これで、次のコマンドを使用してプライベート共有フォルダをマウントできます。

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Sambaパスワードの入力を求められます。その後、/mnt/samba-private/にマウントされます ディレクトリ。

Samba共有を自動的にマウントするには、/etc/fstabを編集します ファイル。

sudo nano /etc/fstab

ファイルに次の行を追加します。

//192.168.0.102/private  /mnt/samba-private   cifs    x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show   0   0

場所:

  • //192.168.0.102/プライベート :SambaサーバーのIPアドレスと共有名。
  • / mnt / samba-private :Samba共有のマウントポイント。
  • cifs :ファイルシステムタイプ
  • x-systemd.automount :このオプションは、ファイルシステムの自動マウントユニットを作成するようにsystemdに指示します。これを使用するのは、ネットワークにアクセスした後にリモートファイルシステムをマウントできるためです。
  • _netdev :これは、マウントにネットワークが必要であることを指定します。
  • クレデンシャル= :Linuxは、/etc/samba-credential.confでクレデンシャルを探す必要があります ファイル。
  • uid =1000、gid =1000 :デフォルトでは、マウントされたファイルシステムはrootユーザーが所有します。 uidを使用します およびgid ファイルシステムの所有権を変更します。通常、独自の uidを使用します およびgid 、デフォルトでは両方とも1000です。
  • x-gvfs-show :GNOMEデスクトップ環境またはその派生物を使用している場合は、このオプションを使用して、マウントされたファイルシステムをファイルマネージャーに表示できます。

ファイルを保存して閉じます。次に、資格情報ファイルを作成します。

sudo nano /etc/samba-credential.conf

ファイルに次の行を追加します。

username=your_samba_username
password=samba_password
domain=WORKGROUP

ファイルを保存して閉じます。 rootユーザーのみがこのファイルを読み取ることができることを確認してください。

sudo chmod 600 /etc/samba-credential.conf

ここでLinuxコンピュータを再起動すると、Samba共有が自動的にマウントされます。

トラブルシューティングのヒント

Sambaサーバーが期待どおりに機能していない場合は、/var/log/samba/の下にあるログファイルを確認できます。 ディレクトリ。より多くの情報をログに記録する場合は、/ etc / samba / smb.confファイルの[global]セクションに次の行を追加して、ログレベルを上げることができます。

log level = 2

Cent OS
  1. CentOS / Fedora / RedHat(RHEL)のキックスタートファイルを作成する方法

  2. RHEL 8 /CentOS8にPuppetをインストールする方法

  3. CentOS / RHEL 7 :FirewallD を使用して Samba サーバーのファイアウォール ポートを開く方法

  1. CentOS/RHEL 7 で udev サービスの children-max を設定する方法

  2. CentOS/RHEL 5 で新規ユーザー用に VNC サーバーをセットアップする方法

  3. CentOS/RHEL 7 で systemd サービスの環境変数を設定する方法

  1. CentOS 8 /RHEL8にOpenLiteSpeedWebサーバーをインストールする方法

  2. CentOS6.5でのSambaサーバー構成

  3. CentOS7でProjectSendファイル共有ツールをセットアップする方法