/etc/exportsファイルの編集
次のステップでは、/etc/exportsファイルを使用して共有ディレクトリを構成する方法について説明します。
/etc/exportsファイルを編集して、NFSサーバーがエクスポートするディレクトリ(どのクライアントがこれらのディレクトリにアクセスできるか、どの権限を持っているかなど)を構成します。
ノート:
/etc/exports.dディレクトリの下に作成するファイルにエクスポートを構成することもできます。 たとえば、/etc/exports.d/myexportsです。
nfs-utilsをインストールします。まだインストールされていない場合は、
nfs-utilsパッケージをインストールします。sudo dnf install nfs-utils/etc/exportsファイルを構成します。/etc/exportsファイルを編集して、どのディレクトリをサーバーでクライアントにマウント可能にするかを定義します。次に例を示します:/var/folder 192.0.2.102(rw,async) /usr/local/apps *(all_squash,anonuid=501,anongid=501,ro) /var/projects/proj1 192.168.1.0/24(ro) mgmtpc(rw)各エントリには、エクスポートされたディレクトリへのローカル・パスと、そのディレクトリをマウントできるクライアントのリスト、およびクライアント固有のエクスポート・オプション(カッコ内)が含まれます。 クライアント指定子と、そのクライアントに適用されるオプションのカッコで囲まれたリストの間に空白を含めることはできません。
次の情報では、エクスポート・ファイルのエントリの例について詳しく説明します:
-
読取りおよび書込み権限を持つ
/var/folderディレクトリをマウントできるのは、IPアドレスが192.0.2.102のクライアント・システムのみです。 ディスクへのすべての書込みは非同期で行われます。 つまり、サーバーは、書込みリクエストがディスクに書き込まれるまで待機せず、クライアントからの追加のリクエストに応答します。 -
ワイルドカード(*)で示されているように、すべてのクライアントは
/usr/local/appsディレクトリを読取り専用としてマウントできます。 すべての接続ユーザー(rootユーザーを含む)は、UID 501、GID 501のローカルの非特権ユーザーにマップされます。 -
192.168.1.0/24サブネット上のすべてのクライアントは、/var/projects/proj1ディレクトリを読取り専用としてマウントできます。 ただし、mgmtpcという名前のクライアント・システムは、読取り/書込み権限でディレクトリをマウントできます。
etc/exportsファイルの形式の詳細は、exports(5)マニュアル・ページを参照してください。-
- NFSv4クライアント用に
/etc/idmapd.confファイルを構成します。サーバーがNFSv4クライアントにサービスを提供する場合は、
/etc/idmapd.confファイルで、サーバーのドメイン名を指定してDomainパラメータの定義を編集します。Domain = mydom.comこの設定により、
all_squashマウント・オプションが指定されていない場合に、NFSクライアント上の匿名ユーザーまたはグループ(nobodyまたはnogroup)として所有者とグループが誤ってリストされるのを防ぎます。 - NFSv4クライアントのみにアクセスできるようにファイアウォールを構成します。
NFSv4クライアントに対してのみファイアウォールを介したアクセスを有効にするには、次のコマンドを使用します:
sudo firewall-cmd --permanent --zone=zone --add-service=nfsこの構成は、
rpc.nfsdがデフォルトのTCPポート2049でクライアント・リクエストをリスニングすることを前提としています。 - NFSv3およびNFSv4クライアントへのアクセスを有効にするようにファイアウォールを構成します。
NFSv3およびNFSv4クライアントのファイアウォールを介したアクセスを有効にするには、次を実行します:
-
/etc/nfs.confファイルを編集して、ネットワーク・マウント・リクエスト(mountdセクション)およびステータス・モニタリング(statdセクション)を処理するためのポート設定を指定します。 また、ネットワーク・ロック・マネージャがリスニングするTCPポートをlockdセクションで設定します。 たとえば:# Ports that various services should listen on. [mountd] port = 892 [statd] port = 662 [lockd] port = 32803これらのポートのいずれかがすでに使用されている場合、NFSの起動は失敗します。
lsof -iコマンドを使用して未使用のポートを検索し、必要に応じて/etc/nfs.confファイルの設定を変更します。RPCサービスによってリスニングされているポートを確認するには、
rpcinfo -pコマンドを使用します。 -
ファイアウォール・サービスを再起動し、次の方法でNFSv3接続できるようにファイアウォールを構成します:
sudo firewall-cmd --permanent --zone=zone --add-port=2049/tcp --add-port=111/tcp --add-port=32803/tcp --add-port=892/tcp --add-port=662/tcp -
サーバーを再起動します。
sudo systemctl reboot
-
nfs-serverサービスを起動します。nfs-serverサービスを起動し、システムの起動時に自動的に開始するようにサービスを構成します:sudo systemctl enable --now nfs-server- サーバーが動作するNFSのバージョンを確認します。
次のコマンドを実行して、構成したNFSバージョンがサーバーによって提供されることを確認します:
sudo cat /proc/fs/nfsd/versionsたとえば、次の出力は、サーバーがNFS3、NFS4、NFS4.1およびNFS 4.2を提供していることを示しています:
+3 +4 +4.1 +4.2 - エクスポートされたディレクトリをリストします。
エクスポートされたディレクトリのリストを表示します。
sudo showmount -eExport list for host01.mydom.com /var/folder 192.0.2.102 /usr/local/apps * /var/projects/proj1 192.168.1.0/24 mgmtpcサーバーでのexportfsコマンドでは、
showmount -eコマンドと同じ情報が表示されます。sudo /usr/sbin/exportfs -vshowmount -aコマンドは、現在のすべてのクライアントと、クライアントがマウントしたすべてのエクスポート済ディレクトリを表示します。
ノート:
NFSv4クライアントからのshowmountコマンドの使用を有効にするには、
/etc/nfs.conf内でMOUNTD_PORTパラメータにポート番号を指定します。 次に、このTCPポートへのアクセスを有効にするためのファイアウォール・ルールを作成します。