回答:
sudo chown -R yourname:www-data cake
その後
sudo chmod -R g+s cake
最初のコマンドは所有者とグループを変更します。
2番目のコマンドは、sの属性を追加して、同じグループのアクセス許可を持つ新しいファイルとディレクトリをCake内に保持します。
Slicehostの記事で述べたように:
ユーザー設定
それでは、Apacheユーザーグループにメインユーザーを追加することから始めましょう。
sudo usermod -a -G www-data demo
これにより、ユーザー「demo」が「www-data」グループに追加されます。上記のusermodコマンドでは、必ず-aオプションと-Gオプションの両方を使用してください。
グループの変更を有効にするには、ログアウトしてから再度ログインする必要があります。
今すぐグループを確認してください:
groups ... # demo www-data
だから今、私は2つのグループのメンバーです:私自身(デモ)とApacheグループ(www-data)。
フォルダー設定
次に、public_htmlフォルダーがメインユーザー(デモ)によって所有され、Apacheグループ(www-data)の一部であることを確認する必要があります。
それを設定しましょう:
sudo chgrp -R www-data /home/demo/public_html
アクセス許可については、sudoコマンドに関する簡単なメモを追加します。上記のように、相対パス(〜/ public_html)ではなく絶対パス(/ home / demo / public_html)を使用することをお勧めします。sudoが正しい場所で使用されていることを確認します。
シンボリックリンクが配置されたpublic_htmlフォルダーがある場合は、シンボリックリンクをたどるので、そのコマンドに注意してください。public_htmlフォルダーが機能している場合は、各フォルダーを手動で変更します。
Setgid
これまでのところ良好ですが、ここで指定したコマンドは既存のフォルダにのみ影響を与えます。新しいものはどうですか?
所有権を設定できるので、新しいものも「www-data」グループに含まれます。
最初のコマンドは、「setgid」ビットを含むようにpublic_htmlディレクトリの権限を変更します。
sudo chmod 2750 /home/demo/public_html
これにより、新しいファイルには必ず「www-data」グループが付与されます。サブディレクトリがある場合、各サブディレクトリに対してそのコマンドを実行する必要があります(このタイプの権限は「-R」では機能しません)。幸い、新しいサブディレクトリは「setgid」ビットが自動的に設定された状態で作成されます。
Apacheへの書き込みアクセスを許可する必要がある場合は、たとえばアップロードディレクトリに、そのディレクトリのアクセス許可を次のように設定します。
sudo chmod 2770 /home/demo/public_html/domain1.com/public/uploads
新しいファイルには自動的に正しい所有権が割り当てられるため、権限を設定する必要があるのは一度だけです。