2

開発環境用に CentOS VM をセットアップし、NFS を使用して Ubuntu ボックスに Web ルートをマウントします。その部分は正常に機能します。ただし、すべてのサブディレクトリは書き込み可能ではありません。それらの内容 (読み取り専用) を見ることはできますが、新しいファイルをサブディレクトリに追加することはできません。ただし、マウント ポイントの親ディレクトリにファイルを書き込むことはできます。

[root@dev ~]# cat /etc/exports
/var/www/html   192.168.122.1(rw,sync,no_root_squash,no_subtree_check)

私が理解していることから、NFS 共有は rw と no_root_squash でマウントされているため、すべてのユーザーがこれらのディレクトリに書き込むことができるはずです。誰かがこれに光を当てることができますか? 控えめに言っても、当惑しています。残念ながら、Google はあまり役に立ちません。

ホスト マシンからアクセス許可を表示すると、ファイルは nobody:nogroup によって所有されていると表示されますが、VM 上の ls -hal からの出力は、ホスト マシンで使用しているのと同じユーザー名: グループによって所有されていることを示しています。PAM が作動して、ホスト ユーザーが書き込みを行えるようにすべきではありませんか?

結局のところ、私が達成しようとしているのは、現在のすべてのサブディレクトリと新しいサブディレクトリを IDE で読み書きできるようにすることです。現在、親ディレクトリ/ファイルのみです。現在、ホストに ssh してファイルを作成したり、そこで変更を加えたりする必要があります。私は自分の作業を複製したくありません。HTML 開発環境が、/etc/exports ごとにアクセスを許可されている任意のホストから書き込み可能であることを本当に望んでいます。

他の人がこれをどのように克服したかを聞くのを楽しみにしています。そして、事前にあなたの時間と洞察をありがとう.

[接線] 最終的には、Samba をドメイン コントローラとしてセットアップし、それをすべてのホストへの認証に使用する必要があるかもしれません。この質問は無効になると確信していますが、まだそれをいじる時間はありません... ああ。 [/正接]

4

1 に答える 1

5

私が理解していることから、NFS 共有は rw と no_root_squash でマウントされているため、すべてのユーザーがこれらのディレクトリに書き込むことができるはずです。

これは間違っています。ファイルとディレクトリは、通常のファイルシステムと同様に、ユーザー/グループ/その他の読み取り/書き込み/実行パターンを引き続き使用します。これは、NFS が追加の制限を課していないことを意味します。

NFS を使用している場合は、ユーザー ID とグループ ID をすべてのマシン間で同期させておく必要があります。そうしないと、どうしようもなく混乱してしまいます。内部的には、オペレーティング システムはユーザー/グループ名を保存せず、数値 ID を保存します。ls などのコマンドは、/etc/passwd を使用してこれらの ID を名前にマップします。

したがって、最初のマシンに UID 1000 を持つ「adam」と UID 1001 を持つ「bob」という名前のユーザーがいて、2 番目のマシンに「bob」の ID 1000 と「adam」の ID 1001 がある場合、同じファイルユーザー ID が 1000 の場合、最初のマシンでは adam に属し、2 番目のマシンでは bob に属していると表示されます。これは PAM とはまったく関係ありません。PAM は認証のみを行います (ユーザーが自分が adam であると主張し、パスワード SeCrEt を与えると、uid 1000 が割り当てられます)。

サービス ラインの NIS (以前は YP と呼ばれていました) と LDAP は、まさにその問題を解決するために作成されました。データベースを複数のホストで同期させます。(これは、ls が /etc/passwd でユーザー名を検索すると言ったときに嘘をついた場所です。/etc/nsswitch.conf に応じて、/etc/passwd、nis、ldap などをチェックします)

正しく行うには、両方のマシンの /etc/passwd でユーザー ID を確認してください。ls -ln を使用して、名前の代わりに数値 ID を表示します。NUMERICAL ID が異なる場合、nfs はおかしな動作をしています。すべてのマシンで同じユーザー名に同じユーザー ID を使用していることを確認してください。そうすれば、NFS は正常に機能します。

于 2013-12-12T15:33:29.157 に答える