私は、ホスト環境(OSX)のフォルダがUbuntuゲストを実行しているVirtualBox VMにマウントされる開発環境を構築しています。
私たちの経験によれば、単純なVirtualBox共有ディレクトリは遅すぎるので、通常、ゲストはそのディレクトリをNFSとしてマウントすることによってこれを行います。ホスト環境でリアルタイム編集が必要です。
問題は、chown
およびetc操作がchgrp
失敗し、本番環境に近い項目(www-data
Apacheで使用されているファイルの保存など)をコピーする必要があることです。
ファイルシステムバインディング有望に見えます:
binfs - 変更された権限でローカルディレクトリをミラーリングまたは上書きします。
ただし、デフォルトのUnixユーティリティとシステムコールを使用して権限を変更することはできません。ボックスを提供する既存の構成管理システム(Salt、Puppet)と統合する必要があるため、このアプローチは私には適していません。
権限の観点から、NFSマウントを通常のディレクトリのように見せる別の方法はありますか?それとも、ディレクトリをVirtualBox VMにマウントする別のオプションはありますか?
編集する:これはインストールの結果です。
192.168.34.1:/Users/$me/src/states /etc/apps/state type nfs (rw,vers=3,addr=192.168.34.1)
192.168.34.1:/Users/$me/src/apps on /srv/apps type nfs (rw,vers=3,addr=192.168.34.1)
権限の変更が「失敗しました」と言うと、「操作が許可されていません」というエラーが発生することを意味します。
たとえば、
$ ls -l /srv/www
total 8
drwxrwxr-x 4 501 dialout 136 May 31 16:20 default_vhost
drwxrwxr-x 5 501 dialout 170 May 31 16:20 default_vhost_ssl
$ chown root /srv/www/*
chown: changing ownership of `/srv/www/default_vhost': Operation not permitted
chown: changing ownership of `/srv/www/default_vhost_ssl': Operation not permitted
答え1
ルートのみ利用可能chown
。 NFSを使用するかどうかに関係なく、chown
rootとして実行する必要があります。
デフォルトでは、NFSはローカルrootユーザーをリモートユーザーにマップしますnobody
。これによりchown
使用できなくなり、サーバーで実行する必要があります。クライアントルートにNFSファイルシステムに対するroot権限がある場合は、このno_root_squash
オプションを使用してファイルシステムをエクスポートします。つまり、サーバーには/etc/exports
次のものが必要です。
/Users/$me/src/states 192.168.34.2(no_root_squash,async)