/var/www配下のパーミッションをどうすべきかについて情報が錯綜してて困ったので自分なりに調べたことをまとめておきます。

サーバープロセスが直接ファイルの変更を行うか、複数人管理かがどうかで結構変わるのでめんどくさくなってるみたいですね。

まとめ

  1. サーバープロセスがファイルの変更を行わず、sudo可ユーザーのみが変更
    /var/www 以下は全て root:root
    理由:apache, nginx などのプロセスが乗っ取られてもroot権限がないと改変できないため

  2. サーバープロセスがファイルの変更を行わず、sudo不可のユーザーも変更
    /var/www/siteftp-user:root に。
    複数ユーザーがFTPでアクセスして書き込み権を持つなら ftp-user:ftp-userで適当にユーザーをグループに追加

  3. サーバープロセスがファイルの変更を行う(WordPressなど)、
    /var/www/site 以下の必要なフォルダ、ファイルだけftp-user:www-user にして
    サーバープロセスのユーザーをwww-userに追加、apache所有には絶対にしない


どんなフィルタが適用されてるか確認したかったので質問したら教えてもらえました。Stackexchangeの回答者様ありがとうございます。

参考

How to check a filter are applied – WordPress Answers


WordPressを覚えたくなったのでWordPressの教科書2を読みながら勉強中。気になったところをメモっていきます。本の現物がないと意味不明です。

P.065:

フィルターフックを追加するのに関数名が add_filter なのが非常に気に食わない。そこは add_filter_hook とめんどくさくてもちゃんと書くところじゃないです!?

P.071

WP_SiteManager_bread_crumb::bread_crumb('navi_element=div&elm_id=bread_crumb');
って出てきたけど引数にこんなURL表記みたいな気持ち悪い方法使うの…?

P.115

カスタムフィールドの名前欄を編集不可にはできないのかな? (P.127から「専用の管理画面を作成する」が始まった!)

P.253

Genericons便利そう。

後は適当に流し読みしたので終了。