背景
- サーバアプリケーションを動かす環境として、アプリケーション専用アカウントを用意している。
- アプリケーションのメンテナンス作業は複数の担当者が行えるようにしたい。
- 上記担当者にはアプリケーションのメンテナンス作業だけ行えるようにして、システム管理者権限は与えたくない。
- アプリケーション専用アカウントのパスワードの共用はやりたくない。
- そもそも、アプリケーション専用アカウントはログイン禁止にしたい。
環境
$ cat /etc/os-release | grep PRETTY_NAME
PRETTY_NAME="CentOS Linux 7 (Core)"
PRETTY_NAME="Ubuntu 14.04.4 LTS"
内容
sudoコマンドでsu - アプリケーション専用アカウント
のみ実行できるように設定する。
設定例は以下の通り。
$ sudo visudo
/etc/sudoers
%git ALL=(ALL:ALL) /bin/su - git
hogeアカウントを作成する。
$ sudo useradd -m hoge
$ sudo passwd hoge
hogeアカウントにsu - git
権限を付与する。
$ sudo gpasswd -a hoge git
gitアカウントのパスワードログインを禁止する。
$ sudo moduser -L git
補足
sudo su - git
権限の付与はシステム管理者の特権になりますが、sudo su - git
権限を持つ人が~git/.ssh/authorized_keys
に公開鍵を登録することで、SSHログインを許可することができるため、これを防ぐ世為にはgitアカウントで公開鍵認証を禁止する必要があります。設定は以下の通り。
/etc/ssh/sshd_config
Match User git
PubkeyAuthentication yes
※SELinuxで制限かけたほうがよさそうな気がするけど、やり方わからん。気が向いたらそのうち調べる。