みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Linuxのnfsがうまくいきません。

Linuxのnfsのマウントがうまくいきません。経緯は以下の通りです。

【サーバ側 ubuntu 9.10の設定】
1.sudo apt-get install nfs-kernel-server

2. /etc/exportsの編集
/home/hogehoge xxx.yyy.0.0/255.255.255.0(rw)

→/home/hogehogeがないのでmkdirで作成する。

3. nfs-server-kernelの再起動

a),b)のどちらかを実行する

a) /etc/init.d/nfs-kernel-server restart
b) sudo exportfs- r

結果:
exportfs: /etc/exports [2]: Neither 'subtree_check' or 'no_subtree_check' specified for export "xxx.yyy.0.0/255.255.255.0:/home/hogehoge".
Assuming default behaviour ('no_subtree_check').
NOTE: this default has changed since nfs-utils version 1.0.x

【クライアント側:redhat】

mkdirで/mnt/hogehogeを作成する。

mount xxx.yy.70.84:/home/hogehoge /mnt/hogehoge

結果:
mount: xxx.yy.70.84:/home/hogehoge failed, reason given by server: Permission denied ←失敗。

【質問】

0.この失敗の内容はサーバ側のPermission denied(許可申請却下)のようです。どのようなレベルでの許可問題なのでしょうか。
1. exportfs -rに対するレスポンスは正常なのでしょうか。こちらが指定した設定とは異なりデフォルトで動作するという風に読めます。
2.確認ですが、サーバ側は当然ルート権限で実行すると思います。クライアント側もルート(su or sudo)でやるのでしょうか。
3.サーバ側の/home/hogehogeのフォルダ設定とか所有者はどうすればよいでしょうか。フォルダ設定にnfsの可否が指定されるのでしょうか。
4.クライアント側の/mnt/hogehogeフォルダの設定と所有者はどうするのでしょうか。

要は、nfsの環境設定、実行、フォルダ設定 と ユーザ権限との関係が理解できていないということです。何も指定がない、ということはどのようにでも動作するという意味でしょうか。

その他、どのようなミスをしているでしょうか。よろしくお願いします。

投稿日時 - 2011-01-19 11:40:31

QNo.6458944

すぐに回答ほしいです

質問者が選んだベストアンサー

#1です。
exportsでの xxx.yyy.0.0/255.255.255.0の表記は、IP adress/サブネットマスク の表記でしょう。
現在の設定だと、xxx.yyy.0をサブネット(ネットワークとして固定されている部分)として認識するので、接続可能なIPアドレスはxxx.yyy.0.1からxxx.yyy.0.254までになり、xxx.yyy.70.80は接続拒否されるかと思います。
exports でのアドレスをxxx.yyy.0.0/255.255.0.0や、xxx.yyy.70.0/255.255.255.0 のようにする(どのように設定するかは、そこのLANの設定によります)必要があるかと思います。
あるいは、クライアントが一つで、IPアドレスを静的に(固定で)設定しているなら、サブネット表記をやめて、
/home/hogehoge xxx.yyy.70.80(rw) という具合に特定のIPアドレスに設定するのがよさそうに思います。

投稿日時 - 2011-01-22 11:31:46

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

#1お礼欄に関して。
/etc/fstab にnfsマウントの設定を書き込んでおけば最近のディストリビューションなら、設定ツールもあるかと思います)、起動時に自動的にマウントされますし、動的にマウントする機能(使うときに自動的にマウントする)もあります。

投稿日時 - 2011-01-22 11:36:00

ANo.2

http://plus-alpha-space.cocolog-nifty.com/blog/2010/05/ubuntu-910leopa.html

http://axela5004.blog74.fc2.com/blog-entry-537.html

> その他、どのようなミスをしているでしょうか。

ミスかどうかはわかりませんが、

> 【サーバ側 ubuntu 9.10の設定】
> 1.sudo apt-get install nfs-kernel-server

sudo apt-get install nfs-kernel-server nfs-common

※ nfs-common 不要なのかな。


> 要は、nfsの環境設定、実行、フォルダ設定 と ユーザ権限との関係が理解できていないということです。

マニュアル見て理解できないのでしょうか。

※ 例えば man exports みて理解できないという事なのでしょうか。


> 何も指定がない、ということはどのようにでも動作するという意味でしょうか。

かなり自由度は高いと思います。指定なしではパッケージ作者のお考えになった標準設定になるかと。


※ nfs経由のアクセスは全てdaemonやnobodyにマップする事もできますし。

投稿日時 - 2011-01-21 09:45:43

お礼

回答ありがとうございます。
私はこのような類の話になると急激に理解力が低下してしまいます。

別の話になるのですが、例えば、

/xxx
/xxx/yyy

という2つのフォルダがあって、/xxx以下は読み書き自由、/xxx/yyy以下は読み書き不可とした場合、/xxx/yyyは/xxxの配下にあるのだから、読み書き自由になるのではないかという気がして戸惑います。
逆に/xxxが読み書き不可、/xxx/yyyが読み書き可とした場合も理解しにくいものと感じてしまいます。

これらの問題は理解というよりも、そういうものだとか、そういう決まりだ、というものであり、分かる分からないではない、というものですね。(違うかも知れませんが)

このようなものは理屈でやってはいけないということなのでしょうかねえ。(話がそれてすみません)

投稿日時 - 2011-01-22 00:17:48

ANo.1

気になる点。
サーバのexportfsでのIPアドレス指定とクライアントのIPアドレスが整合しているかどうかが気になります。ご質問での設定だと、クライアントのアドレスはxxx.yyy.0.zzzですよね。

1. 特に設定されていない項目(subtree_check)に対して、デフォルトの設定が適用されているように思います。

2. root権限でマウントするかと思います。

3. nfsではサーバのファイルシステムのユーザIDやグループIDがそのまま引き継がれたかと思います。このため、サーバとクライアントでID(番号)を統一しておく必要があります。

投稿日時 - 2011-01-19 15:31:54

お礼

回答ありがとうございます。
 クライアントのアドレスはxxx.yyy.70.80というようなものです。これは問題でしょうか。
 クライアントはxxx.yyy.0.0~255.255.255.0の間ということかと思いますが。

nfsはrootとしてコマンドを入力するということですが、最終的には自動でマウントするようにしたいと思います。毎回コマンドを入力してマウントするというのではしんどいもので。

Windowsは簡単にフォルダ共有できますが、Linuxは難しいと感じています。

投稿日時 - 2011-01-22 00:05:27

あなたにオススメの質問