web-dev-qa-db-ja.com

Vagrantがデフォルトの共有権限を設定

Vagrantインスタンスを実行すると、プロジェクトフォルダーは自動的に/vagrantにマウントされます。ただし、次の権限でマウントされています

# ll -d /vagrant
drwx------ 1 vagrant vagrant 612 Jun 13 14:41 /vagrant/

(少なくとも)0770でマウントする必要がありますが、方法がわかりません。 mountコマンドを実行すると、次の出力が表示されます

# mount
v-root on /vagrant type vboxsf (uid=1000,gid=100,rw)

私はchmodchown/chgrpの両方を試しましたが、それらはそのマウントされたフォルダーでは機能しないため、私のApacheユーザーはそのフォルダーにアクセスできません。私 Vagrantマニュアルで読む 所有者とグループを変更できるが、許可については何も触れられていない。

どうやってやるの?

別のオプションはNFSに切り替えることもできますが、この方法ではWindowsプラットフォームでは機能せず、ローカルの/etc/exportsファイルを編集する必要があり、ルート権限が必要であり、かなり煩わしいので、使用したくないこの変更を行います。

32
Fabio

V1.3.2以降の場合、私のVagantfileでこの行を使用して解決します。

config.vm.synced_folder ".", "/vagrant", :mount_options => ["dmode=777","fmode=666"]

1.2バージョンより前の構文:

config.vm.share_folder("v-root", "/vagrant", ".", :extra => 'dmode=770,fmode=770')

クレジット: http://ubuntuforums.org/showthread.php?t=1434884

Vagrant 1.2の正しい構文は次のとおりです。

config.vm.synced_folder ".", "/vagrant", :extra => "dmode=777,fmode=666"

クレジット: Aal

V1.3.2以降では、同期フォルダーの「追加」フラグが「mount_options」に変更されました。オプションは、各オプションが個別の文字列として配列に含まれている必要があります(以前のバージョンでは両方のオプションが単一の文字列であったのに対して)。

53
Fabio