プロジェクト

全般

プロフィール

NFS

インストール

yum install nfs-utils

サービス起動

systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap

自動起動

systemctl enable rpcbind
systemctl enable nfs-server

※下記はstaticの為連動してして起動する。
nfs-lock
nfs-idmap

設定

アクセス時は共有元のパーミッションで判定している。
デフォルトではrootのみnfsnobody権限でアクセス可能。

設定例1(全ユーザーnobodyアクセス)
サーバー側の共有するディレクトリに関して
ユーザーをnfsnobodyに変えておくと共有が簡単

mkdir -p /home/nfs
chown nfsnobody: nfs
/etc/export
/home/nfs 192.68.0.0/24(rw,all_squash)
※改行を入れる必要がある。

192.68.0.0/24からのアクセスのみ許可
rw (読み込みと書き込み) を許可
sync と設定して非同期 (async) ではなく即座に書き込み
all_squash と設定してすべてのクライアントは nfsnobody としてアクセス

exportfs -ra

クライアント側

mount -t nfs 192.168.23.201:/home/nfs /mnt

①ユーザーに関係なく作成したデータはnobodyユーザーで作成される。
②アクセス時もユーザーに関係なくnobodyでアクセス。

-設定例2(ルートからのアクセス許可)

mkdir -p /home/nfs
/etc/export
/home/nfs 192.68.0.0/24(rw,no_squash)

no_squash ルートからのアクセスを許可する。

クライアント側

mount -t nfs 192.168.23.201:/home/nfs /mnt

①rootのみアクセス可能。
②その他ユーザーは接続不可

オプション

-一般オプション
ro 読み込み専用
rw 読み書きを許可
sync asyncと反対。ファイル更新が直ちに行われる
async ディレクトリ内のファイルは非同期に反映される
wdelay 複数の書き込み処理を1度に行う。NFSサーバ側での更新を一括して行う
no_wdelay wdelayのとは反対。syncオプションと併用する
noaccess 共有しない

-マッピングオプション
all_squash 全てのUID,GIDを匿名アカウントへマッピング(nfsnobody)
anonuid 全てのUIDを匿名アカウントへマッピング
anongid 全てのGIDを匿名グループへマッピング(nfsnobody)
squash_uids 指定UIDを匿名アカウントに変換
squash_gids 指定したGIDユーザをすべて匿名グループへマッピング
map_daemon 動的なUID,GID変換を有効
map_identity UID,GIDに関する変換を行わない。
map_static UID,GIDに関する変換を定義するマップファイルを指定する
map_nis NISベースのUID,GID変換を有効
root_squash root特権をnfsnobodyに変換する
no_root_squash root_squashの反対。root特権有効

ポート固定

vi /etc/sysconfig/nfs

MOUNTD_NFS_V2="no"
MOUNTD_NFS_V3="yes"
LOCKD_TCPPORT=32803
LOCKD_UDPPORT=32769
MOUNTD_PORT=892
STATD_PORT=662

トラブルシューティング

①mount: mount to NFS server '192.168.23.201' failed: System Error: No route to host.

firewallにてポートが閉じている。

②mount: wrong fs type, bad option, bad superblock on 192.168.23.201:/home/nfs,
missing codepage or helper program, or other error
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount. helper program)
In some cases useful info is found in syslog - try
dmesg | tail or so.

nfs-utilsをインストールする。
インストール後rpcbindを起動する。