複数人でwordpressを管理する際のlinuxサーバー設定について

やりたいこと

  • 複数人でwordpressを管理するために、「wordpress」ディレクトリ配下のファイルを複数人で触りたい
  • ユーザーの種類はsshユーザーとsftpユーザーを用意する
  • root権限は渡さない

行う設定

  • 各ユーザーをwordpressディレクトリを所有するユーザーのグループに入れる
  • 各ユーザーが作成したディレクトリやファイルのグループを「wordpressディレクトリを所有するユーザー」にするためにsgidを設定する
  • 各ユーザーが作成したディレクトリやファイルの権限を775に固定するためにumaskを設定する
  • sftpユーザーのためにumaskを設定する

各ユーザーをwordpressディレクトリを所有するユーザーのグループに入れる

  • 「wordpress」ディレクトリのグループを確認する
  • グループ一覧を確認する
cat /etc/group
  • ユーザーをグループに追加する
gpasswd -a USER GROUP

各ユーザーが作成したディレクトリやファイルのグループを「wordpressディレクトリを所有するユーザー」にするためにsgidを設定する

  • SGIDとは

Set Group ID
先ほどもお伝えしたが「SGID」とは「Set Group ID」の略だ。グループに対して設定される特殊パーミッションになっている。
ポイントは次の通りだ。
・ファイルにSGIDが適応されていた場合、そのグループの権限でファイルが実行される
・ディレクトリにSGIDを指定しておくと、ディレクトリ内部で作成されたファイルは全てディレクトリのSGIDで指定したグループが割り振られる
ファイルのグループIDが統一される。
グループでファイルを共有する場合、専用のSGIDなディレクトリを作成しておいて、そのなかでファイルをやりとりすれば、グループ事でシームレスなファイル共有が可能となる。

引用:https://eng-entrance.com/linux-permission-sgid

  • 「wordpress」ディレクトリ配下にsgidと権限を設定する
chmod -R 2775 wordpress

各ユーザーが作成したディレクトリやファイルの権限を775に固定するためにumaskを設定する

sshユーザーのためのumask設定

  • /etc/profileを以下のようにする
# userid199以上はumaskを002とする
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
    umask 002
else
    umask 022
fi

sftpユーザーのためのumask設定

  • sftpユーザーを「sftp-user」グループにまとめる
  • /etc/ssh/sshd_configを以下のようにする
Subsystem sftp internal-sftp -u 002

Match Group sftp-user
ForceCommand internal-sftp -u 002
  • sshdの再起動
service sshd restart

参考:http://x68000.q-e-d.net/~68user/unix/pickup?umask

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です