(作成:2005/01)
ネットワーク越しのマウントが可能なファイルシステム。ファイルの共有場所とかに使えて便利だけど、データが平文だしイントラネットでのみ使うのが常套。
設定
サーバ設定
以下のパッケージを導入。
# apt-get install nfs-common nfs-kernel-server
- 追加パッケージ
keyutils
libnfsidmap2
libtirpc1
rpcbind
マウントさせたいディレクトリについて、以下のファイルで設定する。
#### /etc/exports
/opt 192.168.1.0/24(rw)
ディレクトリ、許可IP、権限の順。リードオンリーの場合は(ro)となる。 んで、 nfs-kernel-server
の再起動。
# /etc/init.d/nfs-kernel-server restart
TCP Wrapperを使いたい場合、 portmap
を立ち上げておく必要がある。
# /etc/init.d/portmap start
Wrapperの設定を行なう。
#### /etc/hosts.allow
portmap: 192.168.1.
mountd: 192.168.1.
クライアント用の設定
マウントは以下のようにして行なう。
# mount oni:/opt /mnt
/etc/fstab
には以下のような記述をすれば自動マウントできる。
#### /etc/fstab
oni:/opt /mnt nfs defaults,noauto,rsize=8192,wsize=8192 0 0
rsize
wsize
はそれぞれread/write時のキャッシュサイズ。これにより挙動不審になる場合もあるので注意。
また、NFSはサーバ/クライアント間の通信ではユーザ/グループIDは変更されない。つまり、どちらか片方にのみ存在するユーザ/グループIDでファイルを送受信すると、もう片方でそのファイルが誰の物か判らなくなる可能性があるので注意。
逆に考えれば、グループIDを用いてローカルPC内にアクセス制限を設けるのと同じように制限を掛けることができる。例えば以下のような感じ。
- ローカルでのみアクセス可能なグループとして
local(1000)
を作成。 - マウントしたいディレクトリのIDを
(任意ユーザ):local
として作成、パーミッションを770
とする。 - このディレクトリを使用するユーザを
local(1000)
に所属させる。 - マウントすると、
local(1000)
に所属しているユーザのみがアクセスできる。