WordPressを入れているサーバが、レンタルサーバーとかの場合には大抵webserverの実行ユーザーとftpユーザーを同じにしちゃって色々編集するようにしているかと。
Webサーバとftpユーザを同じに出来ない場合には、
ブラウザ経由でプラグイン更新しようとしたらFTPのユーザーが求められた!
とか、
ftpで編集しようと思ったらできない!とか。起こるはず。(起きた)
なぜこんな事態になるのか、新規に作成されたファイルは基本的に作成ユーザーでしかいじれないから。
全員書き込み可能にしたらあぶないですし、しかしそれでは必要なユーザーが書き込めない。
ので、対応としてはこんな感じにしてみました。
まずはFTPで使いたいユーザーを追加してあげる。
$ useradd fastpress
このユーザーがFTP接続できるようにする部分は別記事で
https://hacknote.jp/?s=ftp
なかったらごめんなさいちゃんと責任持って書きます。
まずは全部Apache(httpdの実行ユーザ。違う名前にしてたんならそっちにしてね。webとか)に権限をあげちゃう。
$ chown apache:apache -R /RootDir
RootDirはちゃんとWordPressがおいてあるルートディレクトリのパスにしてあげてね。知らなかったらapacheのコンフ見るなり探してね。
さて、これでブラウザ経由では無双できますが、fastpressはWordPressに触れなくなりました。(所有権がapacheにあるため)
ので、fastpressにはapacheのファイルをいじれるようにしてあげましょう。
$ usermod -G apache fastpress
このコマンドでfastpressはapacheグループに所属しました。
が、グループにも書き込み権限がない場合が多いので書き込みを許可してあげましょう。
$ chmod g+w -R /RootDir
グループの書き込み許可です。
これで基本的には問題ないのですが、新規作成されたファイルに関してはグループに書き込み権限が付いていないことが多いです。
そんなときにはumaskの設定で書き込まれるファイルに002で追加してあげましょう!
って言われたんですけど、umaskってmaskなんだから制限広げられないような・・・。
実際やっても制限はかけられても広げることはできない・・・。
まぁ、普通に動かす分にはこれで問題ないです。