はじめに
AWSに開発環境を作成したのでデプロイユーザを考えていてまとめました。
自分ではnginxを使用していたのでユーザのグループはnginxとします。
(nginxで権限エラーを起こさせないためです。apacheであればグループの部分をapacheに変えればOKかと思います。)
管理者のユーザ名はadminとし管理者にはnginxの起動・再起動・停止及びphp-fpmの起動・再起動・停止をパスワードなしでできるようにします。それ以外についてはパスワード有りで実行可能とします。
開発者のユーザ名はdevelとし開発者にはnginxの起動・再起動及びphp-fpmの起動・再起動をパスワードなしでできるようにします。
概要
- 管理者ユーザの作成
- 開発者ユーザの作成
- sudoの割当
詳細
管理者ユーザの作成
管理者ユーザを作成します。
useradd -g nginx -s /bin/bash admin
開発者ユーザの作成
開発者ユーザを作成します。
useradd -g nginx -s /bin/bash devel
sudoの割当
最後に使用できるコマンドを割り当てます。
# echo "# admin " > /etc/sudoers.d/admin
# echo "admin ALL=(ALL) ALL" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service nginx start" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service nginx restart" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service nginx stop" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service php-fpm-5.6 start" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service php-fpm-5.6 restart" >> /etc/sudoers.d/admin
# echo "admin ALL=NOPASSWD: /sbin/service php-fpm-5.6 stop" >> /etc/sudoers.d/admin
# echo "# devel " > /etc/sudoers.d/devel
# echo "devel ALL=NOPASSWD: /sbin/service nginx start" >> /etc/sudoers.d/devel
# echo "devel ALL=NOPASSWD: /sbin/service nginx restart" >> /etc/sudoers.d/devel
# echo "devel ALL=NOPASSWD: /sbin/service php-fpm-5.6 start" >> /etc/sudoers.d/devel
# echo "devel ALL=NOPASSWD: /sbin/service php-fpm-5.6 restart" >> /etc/sudoers.d/devel
あとがき
ユーザ単位でいろいろな権限を上げるのであればユーザ単位で分けて与えとくとわかりやすくて良さそうなきがします。
その他
参考)
sudoで一般ユーザでapacheを起動する
【AWS】EC2インスタンスにユーザーを作成して公開鍵を登録する