NFSの設定について
NFSとは
NFS(Network File System)は、UNIXシステムで利用されるファイル共有システムです。
リモートマシンのディスクパーティションをローカルのハードディスクのようにマウントすることが可能となります。
NFSの設定
NFS設定ファイル「/etc/exports」の編集
「/etc/exports」は、マシンやディレクトリに対するアクセス権限を設定するファイルです。
書式は以下の通りです。
共有するディレクトリ 許可するホスト名 (オプション)
nfsクライアントに対するオプションは多数があります。
使用頻度が高いオプションのみを以下に記述します。
ro | 読み出し専用 |
rw | 読み出しと書き込みを許可する |
no_root_squash | ディレクトリに対してroot権限でアクセスさせる。 |
root_squash | ディレクトリに対してnfsnobody(匿名ユーザ権限)でアクセスさせる。 |
all_squash | 全ユーザー(rootを含む)がnfsnobody(匿名ユーザ権限)にマッピングされる |
sync | 遅延書き込みの有効にする |
下記設定例は「/home/user1/shareディレクトリを192.168.0.*のネットワークに対して読み取りと書き込みを許可する」という設定になります。
/home/user1/share 192.168.0.0/255.255.255.0(rw,sync,all_squash)
設定の更新(exportfsコマンド)
/etc/exportsファイルを編集した際には、「exportfsコマンド」を実行して設定の変更を反映させます。
なお、BSD系OSの場合exportfsコマンドを実行しますが、System V系OSの場合は「share (/usr/sbin/share)」コマンドになります。
このコマンドを実行しない限り設定は反映されないので注意してください。
# exportfs -ra
現在のエクスポートリストを表示する場合は以下のコマンドを実行します。
# exportfs -v
設定の確認
設定を確認するには、「showmount」コマンドを実行します。
# showmount -e
「showmount」コマンドの使用頻度の高いオプションは以下の通りです。
-a | 全てのマウントポイントを表示する |
-d | 共有しているディレクトリ名のみ表示する |
-e | ディレクトリを共有可能な相手を表示する |
ディスクのマウント
マウントする側から「mount」コマンドを実行します。
mount [ファイルシステムタイプ] <nfsサーバ:マウントされるディレクトリ名> <マウントするディレクトリ名>
下記実行例は、nfsサーバ「host1」の共有ディレクトリ「/home/user1/share」を自マシンの「/home/user2/user1_share」にマウントします。
$ mount -t nfs host1:/home/user1/share /home/user2/user1_share
マウントを実行するには、mountコマンドに「-t」オプションを付加し、「nfs」を指定します。(-F nfsオプションとするOSもあります。)
マウントオプションを指定するには、-o オプションをつけてマウントオプションを指定します。
$ mount -t nfs -o rw host1:/home/user1/share /home/user2/user1_share
fstabの設定
毎回マウントコマンドを打たずに自動登録させる場合には、fstabに登録しておきます。
/etc/fstabに以下を追記します。
host1:/home/user1/share /home/user2/user1_share nfs bg,rsize=8192,wsize=8192 0 0
shareコマンド
/etc/exportsファイルを編集した後の設定反映ですが、BSD系OSの場合exportfsコマンドを実行しますが、System V系OSの場合は「share (/usr/sbin/share)」コマンドになります。
share -F nfs -o root=マウントするサーバ マウントさせるディレクトリ