特定のユーザーに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
しかし、もちろん、ルートとしては問題なく動作します。何が悪いのですか?
NFSは、ユーザー名ではなくユーザーIDに基づいて操作を許可します。 NFSクライアントの/data/media
に書き込むことができるようにするには、Apache
のlocalhost
とApache
のremotehost
が同じ数値であることを確認する必要がありますユーザー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に不一致があることを具体的に確認するものはありません。
エクスポートは書き込み可能ですか(サーバーで_/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
_で元に戻します)。
idmap
サービスを構成できることを言及する価値があると思います。