| はじめての自宅サーバ構築 - Fedora/CentOS - | Last Update | 2008/05/16 | |
| It opened to 2004/09/19. 当サイトはFedora9で運用しています |
Visitors Pageviews Today(IP/PV) |
3,251,427 12,002,603 1,896/11,260 |
|
デルではおとくなキャンペーン実施中! |
レノボ Web 広告限定ストア(キャンペーン&新着情報) |
# yum -y install nfs-utils |

共有ディレクトリを作成 # mkdir -p /export/www # mkdir -p /export/mail # mkdir -p /export/common オーナ・グループ設定 # chown -R nfsnobody:nfsnobody /export 「オーナ・グループ」は後述するが、「nfsnobody」と言うデフォルトの匿名とさせる。 |
nfs設定ファイル「/etc/exports」の共有ディレクトリの設定は以下の書式となっています。
<directory> <client>(<option>) [<client>(<option>)] ・・・
directory:共有するディレクトリ
client :許可するホスト名またはFQDN(ドメイン名)またはネットワーク指定
例) hogehoge <-- ホスト名指定
hogehoge.kajuhome.com <-- FQDN指定
*.kajuhome.com <-- ワイルドカードによるドメイン名指定
192.168.1.0/24 <-- ネットワーク指定
option :nfsクライアントに対するオプション
かなりの数があるので、代表的なオプションを示す。
rw 読書き可
ro 読み取りのみ
sync 遅延書き込みの有効
root_squash rootユーザの場合、匿名ユーザにする
no_root_squash rootユーザの場合、そのままの権限でアクセスさせる
all_squash すべてのユーザを、匿名ユーザにする
no_all_squash そのままのユーザ(ID番号)でアクセスさせる
anonuid=nn nfsサーバのUIDにマッピングさせる(nnはID番号)
anongid=nn nfsサーバのGIDにマッピングさせる(nnはID番号)
※:匿名ユーザとは、nfsクライアントから書き込まれたファイルやディレクトリ
の所有者・グループがデフォルトの「nfsnobody」となります。
nfs設定ファイルの設定
# vi /etc/exports
「/export/www」の設定
/export/www web(rw,all_squash,sync) develop(rw,all_squash,sync) client(ro,all_squash,sync)
「/export/mail」の設定
/export/mail smtp(rw,all_squash,sync) pop(rw,all_squash,sync) develop(rw,all_squash,sync) client(ro,all_squash,sync)
「/export/common」の設定
/export/common develop(rw,all_squash,sync) client(rw,all_squash,sync)
備考1)「/export/common」を例にとりますが、以下の設定でも可能です
例1)
ホスト名とFQDNでの設定
/export/common develop(rw,all_squash,sync) client.kajuhome.com(rw,all_squash,sync)
例2)
FQDNとIPアドレスでの設定
/export/common develop.kajuhome.com(rw,all_squash,sync) 192.168.1.104(rw,all_squash,sync)
備考2)『nfsの設定』の図には準拠しませんが、192.168.1のセグメント全てに許可を与えることも可能です。
例)ネットワーク設定
/export/common 192.168.1.0/24(rw,all_squash,sync)
|
portmapを起動する
# /etc/rc.d/init.d/portmap start
portmap を起動中: [ OK ]
※:「portmap」がインストールされていない場合は以下のコマンドでインストールして下さい
# yum -y install portmap
nfsを起動する
# /etc/rc.d/init.d/nfs start
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: [ OK ]
NFS デーモンを起動中: [ OK ]
NFS mountd を起動中: [ OK ]
※:portmapを起動しなかった場合、以下のエラーメッセージが出力されます。
# /etc/rc.d/init.d/nfs start
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: サービスを登録できません: RPC: 受け取れません; errno = 接続を拒否されました
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[失敗]
NFS デーモンを起動中: [失敗]
NFS mountd を起動中: Cannot register service: RPC: Unable to receive; errno = Connection refused
[失敗]
RPC idmapd を起動中: [ OK ]
|
rpcbindを起動する
# /etc/rc.d/init.d/rpcbind start
rpcbind を起動中: [ OK ]
※:「rpcbind」がインストールされていない場合は以下のコマンドでインストールして下さい
# yum -y install rpcbind
nfsを起動する
# /etc/rc.d/init.d/nfs start
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: [ OK ]
NFS デーモンを起動中: [ OK ]
NFS mountd を起動中: [ OK ]
※:rpcbindを起動しなかった場合、以下のエラーメッセージが出力されます。
# /etc/rc.d/init.d/nfs start
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: サービスを登録できません: RPC: 受け取れません; errno = 接続を拒否されました
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[失敗]
NFS デーモンを起動中: [失敗]
|
nfsサーバ起動後にnfs設定ファイル「/etc/exports」を変更した場合は以下のコマンドで可能です。 ※:nfsサービスを再起動する必要はありません # exportfs -ra 現在のエクスポートリストを表示 # exportfs -v /export/common develop(rw,wdelay,root_squash,all_squash) /export/common client(rw,wdelay,root_squash,all_squash) /export/mail smtp(rw,wdelay,root_squash,all_squash) /export/mail pop(rw,wdelay,root_squash,all_squash) /export/mail develop(rw,wdelay,root_squash,all_squash) /export/mail client(ro,wdelay,root_squash,all_squash) /export/www web(rw,wdelay,root_squash,all_squash) /export/www develop(rw,wdelay,root_squash,all_squash) /export/www client(ro,wdelay,root_squash,all_squash) |
マウント先を作成する # mkdir /mnt/xxxxx ディレクトリ名は任意です。 上記は説明上「/mnt/xxxxx」となっていますので、必要に応じてマウント先を作成して下さい。 以降のnfsクライアントのマウント先は、適当なディレクトリを作成済みとしています。 nfsサーバの共有ディレクトリをマウントする ※:mountコマンドのパラメータ mount <ファイルシステムタイプ> <nfsサーバ:共有名> <マウント先> 【web.kajuhome.com の場合】 # mount -t nfs fedora.kajuhome.com:/export/www /mnt/www 【smtp.kajuhome.com および pop.kajuhome.com の場合】 # mount -t nfs fedora.kajuhome.com:/export/mail /mnt/mail 【develop.kajuhome.com および client.kajuhome.com の場合】 # mount -t nfs fedora.kajuhome.com:/export/www /mnt/www # mount -t nfs fedora.kajuhome.com:/export/mail /mnt/mail # mount -t nfs fedora.kajuhome.com:/export/common /mnt/common |
「ro」権の共有ディレクトリに試験ファイルを作成し保存してみる # vi /mnt/www/client.dat 1234567890 abcdefghijklmnopqrstuvwxyz 「:wq」コマンドで保存 "/mnt/www/client.dat" "/mnt/www/client.dat" E212: 書込み用にファイルを開けません 続けるにはENTERを押すかコマンドを入力してください 上記の様にメッセージ出力され、保存できない事が確認できる 「rw」権の共有ディレクトリに試験ファイルを作成し保存してみる # vi /mnt/common/client.dat 1234567890 abcdefghijklmnopqrstuvwxyz 「:wq」コマンドで保存 作成できているか確認 # ls -l /mnt/common/client.dat -rw-r--r-- 1 nfsnobody nfsnobody 38 2月 16 16:04 /mnt/common/client.dat |
『nfsクライアントでの動作確認』で保存した「client.dat」を確認してみる # cat /export/common/client.dat 1234567890 abcdefghijklmnopqrstuvwxyz nfsクライアントで作成した内容を確認できた ※:同様にnfsサーバで作成したファイルが、nfsクライアントで確認できるかも検証してみてください。 「rw」権があるnfsクライアントは、作成されたファイルが確認できて保存も可能であること。 「ro」権のnfsクライアントは、作成されたファイルが確認(読み取りのみ)できること。 |
接続拒否設定 # vi /etc/hosts.deny # # hosts.deny This file describes the names of the hosts which are # *not* allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # # The portmap line is redundant, but it is left to remind you that # the new secure portmap uses hosts.deny and hosts.allow. In particular # you should know that NFS uses portmap! portmap: ALL 接続許可設定 # vi /etc/hosts.allow # # hosts.allow This file describes the names of the hosts which are # allowed to use the local INET services, as decided # by the '/usr/sbin/tcpd' server. # 接続許可をローカルネットワークに限定する portmap: 192.168.1.0/255.255.255.0 |
起動時にportmapを起動する # chkconfig portmap on 設定内容を確認 # chkconfig --list portmap portmap 0:off 1:off 2:on 3:on 4:on 5:on 6:off 起動時にnfsを起動する # chkconfig nfs on 設定内容を確認 # chkconfig --list nfs nfs 0:off 1:off 2:on 3:on 4:on 5:on 6:off |
nfsサービス起動時に以下のメッセージが出力される場合
NFSサービスを起動中: exportfs: /etc/exports:1: syntax error: bad option list
[失敗]
「/etc/exports」に設定した内容が構文エラーです。内容を確認してください。
NFS サービスを起動中: [ OK ]
NFS クォータを起動中: サービスを登録できません: RPC: 受け取れません; errno = 接続を拒否されました
rpc.rquotad: unable to register (RQUOTAPROG, RQUOTAVERS, udp).
[失敗]
NFS デーモンを起動中: [失敗]
NFS mountd を起動中: Cannot register service: RPC: Unable to receive; errno = Connection refused
[失敗]
RPC idmapd を起動中: [ OK ]
『nfsの起動』でも触れましたが、「portmap」サービスを起動していない為です。
「# /etc/rc.d/init.d/portmap start」を実行してサービスを起動後に「nfs」サービスを起動してください。
nfsクライアントでマウント時に以下のメッセージが出力される場合
mount: mount to NFS server 'fedora.kajuhome.com' failed: RPC Error: プログラムが登録されていません.
nfsサーバ側で「nfs」サービスが起動していません。「nfs」サービスを起動してください。
mount: fedora.kajuhome.com:/export/www failed, reason given by server: 許可がありません
nfsサーバのnfs設定ファイル「/etc/exports」に要求してきたnfsクライアントが定義されていない。
または、共有するディレクトリ名が誤っていかのどちらかです。
nfsクライアントでマウント後、アクセスできない場合
nfsサーバの共有ディレクトリのアクセス権を確認する。
|