SFTPでPermission denied

Google Cloud Plattform(以下GCP)でFTPクライアントから書き込みができなかったのでメモ。

今回使用した環境は自分で構築したものではない(構築した人曰く、一般的な環境)ので参考になるかは未知数です。

使用するユーザーをApacheグループに追加する

$ gpasswd -a [ユーザー名] apache

同様のことができるコマンドにusermodがありますが、これは前に所属していたグループから外れる(つまりgoogle-sudoersから外れる)ためsudoが使えなくなるかもしれません

これで追加できたか確認。

$ less /etc/group
apache:x:48:[ユーザー名]

Apache(httpd)のUmaskを設定する

/etc/sysconfig/httpd に、

umask 002

を追記。

$ service httpd restart

で再起動。

参考にしたサイトでSFTP(sshd)のUmaskも同様な変更をする説明がありましたが、今回は設定するとsshに接続できなくなりました…。

パーミッションを適切に設定する

グループに書き込み権限が必要です。ファイルは664、ディレクトリは775で設定。

以下のコマンドを使用すると楽です。

$ find /path/to/dir -type d -exec chmod 775 {} +
$ find /path/to/dir -type f -exec chmod 664 {} +

これで動きました。参考になれば。