私のユーザーが所有するディレクトリがありますvagrant
。 Webサーバー(およびWebアプリケーション)はwww-data
。
誰が作成したかに関係なく、両方のユーザーがこのディレクトリにディレクトリとファイルを作成して変更する必要があります。vagrant
これは、作成したファイルを変更できますが、作成したディレクトリにwww-data
新しいファイルを作成できないためですwww-data
。
作成したディレクトリに適用されたマスクを変更できないため、問題が発生したと思いますwww-data
。
vagrant@iadev:/var/www/web$ sudo rm -r core/cache
vagrant@iadev:/var/www/web$ mkdir core/cache
vagrant@iadev:/var/www/web$ sudo setfacl -R -m u:www-data:rwX,u:vagrant:rwX core/cache
vagrant@iadev:/var/www/web$ sudo setfacl -dR -m u:www-data:rwX,u:vagrant:rwX core/cache
vagrant@iadev:/var/www/web$ getfacl core/cache
# file: core/cache
# owner: vagrant
# group: vagrant
user::rwx
user:www-data:rwx
user:vagrant:rwx
group::rwx
mask::rwx
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x
Webアプリをブラウズしてキャッシュを埋めます。
vagrant@iadev:/var/www/web$ getfacl core/cache/locks/
# file: core/cache/locks/
# owner: www-data
# group: www-data
user::rwx
user:www-data:rwx #effective:r-x
user:vagrant:rwx #effective:r-x
group::rwx #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:user:www-data:rwx
default:user:vagrant:rwx
default:group::rwx
default:mask::rwx
default:other::r-x
vagrant@iadev:/var/www/web$ vi core/cache/locks/test.txt
ユーザーがvagrant
ファイルを保存しようとすると失敗しますcore/cache/locks
。これが問題であることを理解しています#effective:r-x
が、どのように変更するのかわかりません。
setfacl
私は〜30のコマンドのバリエーションを試しました(-n
および含むm:rwX
)。理解できない部分は何ですか?
ベストアンサー1
私も同じ問題があります。core/cache/locks/test.txt
ACLの内容を確認するには:
getfacl core/cache/locks/test.txt
ディレクトリベースのACLが生成されたファイルに適用されていない可能性があります(出力は次のようになります)。
# file: test.txt
# owner: www-data
# group: www-data
user::rw-
group::r--
other::r--
Apacheを再起動すると役に立ちました。リフレッシュはできません。
一方、再起動する必要のない別のApacheインスタンスがあります。行って調べてください。