web-dev-qa-db-ja.com

マウントされたNFSパーティションへの書き込みを許可する方法

特定のユーザーにNFSパーティションへの書き込み権限をどのように許可しますか?

ローカルホスト(Fedoraインストール)にNFS共有をマウントしましたが、rootとして読み書きできますが、ローカルホスト上の共有にあるすべてのファイルとディレクトリを使っても、Apacheユーザーとして書き込むことができません。およびリモートホストはApacheが所有しています。

たとえば、/ etc/fstabの次の行でマウントしました。

remotehost:/data/media     /data/media             nfs     _netdev,soft,intr,rw,bg        0 0

また、どちらの場所もApacheが所有しています。

[root@remotehost ~]# ls -la /data
total 24
drwxr-xr-x.  6 root    root    4096 Jan  6  2011 .
dr-xr-xr-x. 28 root    root    4096 Oct 31  2011 ..
drwxr-xr-x   4 Apache  Apache  4096 Jan 14  2011 media

[root@localhost ~]# ls -la /data
total 16
drwxr-xr-x   4 Apache apache 4096 Dec  7  2011 .
dr-xr-xr-x. 27 root   root   4096 Jun 11 15:51 ..
drwxrwxrwx   5 Apache apache 4096 Jan 31  2011 media

しかし、Apacheユーザーとして書き込もうとすると、「アクセスが拒否されました」というエラーが表示されます。

[root@localhost ~]# Sudo -u Apache touch /data/media/test.txt'
touch: cannot touch `/data/media/test.txt': Permission denied

しかし、もちろん、ルートとしては問題なく動作します。何が悪いのですか?

5
Cerin

NFSは、ユーザー名ではなくユーザーIDに基づいて操作を許可します。 NFSクライアントの/data/mediaに書き込むことができるようにするには、ApachelocalhostApacheremotehostが同じ数値であることを確認する必要がありますユーザーID。

投稿のファイル一覧では、それを確認していません。

実際、localhostリストは、mountpoint/data/mediaがApache @ localhostによって所有されていることを示しています。

[root@localhost ~]# ls -la /data
 ...
 drwxrwxrwx   5 Apache apache 4096 Jan 31  2011 media

リモートリストは、共有リソース/data/mediaがApache @ remotehostによって所有されていることを示しています。

[root@remotehost ~]# ls -la /data
drwxr-xr-x   4 Apache  Apache  4096 Jan 14  2011 media

Apache @ localhostとApache @ remotehostの数値ユーザーIDが異なる場合、ディレクトリは書き込みできません。

コマンドls -lnaを使用して、数値のユーザーIDを確認できます。

これは単なる推測です。 OPには、ユーザーIDに不一致があることを具体的に確認するものはありません。

3
Dmitri Chubarov
  • エクスポートは書き込み可能ですか(サーバーで_/etc/exports_を確認してください)? exports(5)にあるとおり:

    _   rw     Allow both read and write requests on this NFS volume.
              The default is to disallow any request which changes the filesystem.
              This can also be made explicit by using the ro option.
    _
  • (おそらく関係ありませんが、既存のSELinuxポリシーについてはあまり知りません)サーバーでSELinuxを使用していますか? getenforceで確認できます。_setenforce 0_の後に再試行することもできます(_setenforce 1_で元に戻します)。

  • 私はUIDが偶然一致することに注意しました。ただし、ユーザーとグループがIDではなく名前で一致することを確認するには、両方のホストでidmapサービスを構成できることを言及する価値があると思います。
0
Pierre Carrier