sudoでなれるユーザーの制限(Not rootになれるユーザーの制限)

お仕事でサーバーの設定をしたときにググって知りたいことがあまり引っかからなかったので忘備録的な。。

デプロイサーバーの設定で一部の開発者にデプロイ権限を与えることに。サービスごとにデプロイサーバーにユーザーを作り、そのユーザーからデプロイを行う。

ただしsudoのすべての権限を与えるのでなく、あくまでデプロイユーザーになれる権限だけを。

「sudo なれるユーザー 制限」とか検索してもrootになれるユーザーを制限する方法とかばっか出てくるので。。。

sudoの設定は/etc/sudoersを編集するか/etc/sudoers.s/以下にファイル作るか。 書式はこんな感じ

root   ALL=(ALL)   ALL

意味としては

root ALL (ALL) ALL
ユーザー ホスト 権限 コマンド

この書式の意味に関しては他にいくらでも書いてある記事があるのでこれ以上は省略

今回はこのsudoerの設定を使って以下の手順でデプロイの権限を制限した

  1. まずデプロイを行うユーザーをdeployとして作成
  2. deployグループを作りデプロイ権限を与えるユーザーをdeployグループに追加
  3. deployグループのユーザーにdeployユーザーになれるよう設定

ユーザー作成とグループの作成・追加は省略。 sudoerの設定は以下の通り

%deploy   ALL=(root)  /bin/su - deploy
%deploy ALL (root) /bin/su - deploy
deployグループのユーザーに rootユーザー権限で /bin/su - deployを実行できる

これでdeployグループのユーザには sudo su - deploy ができるようになった。
ちなみに(root)の権限の部分、deployユーザーになるんだから(deploy)とかでいけそうとか思えるけど、やってみてできなかったので注意。