web-dev-qa-db-ja.com

ルートとanonuid / anongidのNFS共有

サーバーから共有をエクスポートし、anonuidとanongidを0(ルート)に設定しました。ただし、共有をクライアントにマウントすると、ルートが所有する共有内のフォルダーへのアクセスが拒否されているため、設定が機能していないようです。

サーバーCentOS 5.7 /クライアントCentOS 6.4を使用してNFS version 3.2.29.

これがサーバー上の私の/ etc/exportsです:

/STORAGE 10.0.5.10(rw,sync,no_subtree_check,no_root_squash,anonuid=0,anongid=0)

基本的に、クライアント(10.0.5.10)サーバーに接続します。サーバーのルートであるかのように動作する必要があります。よろしくお願いします!!

4
Jason

10.0.5.10のユーザーをrootとして表示したい場合は、次のようにします。

/STORAGE 10.0.5.10(rw,sync,no_subtree_check,all_squash,anonuid=0,anongid=0)

_all_squash_は、NFSに対して、10.0.5.10から接続するすべてのユーザーについて、実際のUID/GIDを無視し、代わりにUID = anonuidおよびGID = anongidとして扱うように指示します。 _anonuid=0,anongid=0_のすべてのユーザーに_10.0.5.10_のルートアクセス権限を付与する_/STORAGE_を設定しているため、_/STORAGE_のすべてのセキュリティを効果的にバイパスし、来たように見える誰からでも悪用される可能性があります10.0.5.10 IPアドレスから。

FWIW、これはセキュリティの観点からすごい考えです。

サーバーでNFSv4を使用できる場合は、UID/GIDマッピングを有効にして、サーバーの_/etc/idmapd.conf_に静的マップを追加し、10.0.5.10の特定のユーザーにNFSv4サーバーのルートアクセスを付与する必要があることを伝えます。構成ファイルの設定の詳細については、_man idmapd.conf_を参照してください。 NFSv4サーバーで構成ファイルをセットアップしたら、エクスポートを更新します。

/STORAGE 10.0.5.10(rw,sync,no_subtree_check,no_root_squash)

次に、マッピングを有効にし、idmapキャッシュをクリアして、マップサービスを再起動します。

_echo N > /sys/module/nfs/parameters/nfs4_disable_idmapping
nfsidmap -c
service rpcidmapd restart
_

その場合、すべてのユーザーではなく、1人のユーザーにrootアクセスのみを付与します。

10
Earl Ruby

まず、各バージョンで動作が少し異なるため、NFS4にアップグレードする必要があります。

の代わりに no_root_squashを使用する必要がありますroot_squashまたはall_squash-これは、この質問に関連する唯一のパラメーターです。

all_squashは、その共有に接続しているすべてのクライアントがanonuid/anongidパラメータで指定されたIDを使用するようにします。

3
Király István