ウェブサーバーの設定でちょっとハマッたので覚え書き
条件
- ウェブサーバーはユーザapacheで実行される
- ユーザapacheはグループapacheに属する
- ログインして作業するのはユーザsuzukiである
- ユーザsuzukiはグループsuzukiとグループwheelに属する
問題点
ウェブページを配置するディレクトリ/var/wwwに関して
- 所有者をapacheにするとsuzukiは操作できなくなる
- 所有者をsuzukiにするとウェブサーバーから操作できなくなる
両方のユーザから操作できるディレクトリはどうやって設定するべきか?
解決法
ユーザsuzukiにグループapacheを追加
1 |
$ sudo gpasswd -a suzuki apache |
/var/wwwの所有者をapache、所有グループをapacheに変更
1 |
$ sudo chown apache:apache /var/www |
/var/wwwのパーミッションを775に変更 (グループに読み書き権限を与える)
1 |
$ sudo chmod 775 /var/www |
/var/wwwにSGIDを付与する
1 |
$ sudo chmod 2775 /var/www |
umaskが002になっていることを確認する(なっていなければ、ログインスクリプトなどに設定する)。
以上の設定により、以降に作成されるサブディレクトリやファイルの所有グループは全てapacheとなるため、wwwディレクトリ以下はsuzukiとapacheの両方で問題なく操作できるようになる。
参考サイト
Linux|共同作業用のグループとパーミッション設定方法(UGP) | blog onk
http://blog.onk164.net/archives/272.html
Linux – グループ開発時の権限設定 – Qiita
http://qiita.com/soramugi/items/53478cbee857815c4a37
SGID(Set Group ID) – 特殊なアクセス権
http://kazmax.zpp.jp/linux_beginner/setgroupid.html
Linuxコマンド【 groups 】ユーザーの所属グループを表示 – Linux入門 – Webkaru
http://webkaru.net/linux/groups-command/