sudoでなれるユーザーの制限(Not rootになれるユーザーの制限)
お仕事でサーバーの設定をしたときにググって知りたいことがあまり引っかからなかったので忘備録的な。。
デプロイサーバーの設定で一部の開発者にデプロイ権限を与えることに。サービスごとにデプロイサーバーにユーザーを作り、そのユーザーからデプロイを行う。
ただしsudoのすべての権限を与えるのでなく、あくまでデプロイユーザーになれる権限だけを。
「sudo なれるユーザー 制限」とか検索してもrootになれるユーザーを制限する方法とかばっか出てくるので。。。
sudoの設定は/etc/sudoersを編集するか/etc/sudoers.s/以下にファイル作るか。 書式はこんな感じ
root ALL=(ALL) ALL
意味としては
root | ALL | (ALL) | ALL |
---|---|---|---|
ユーザー | ホスト | 権限 | コマンド |
この書式の意味に関しては他にいくらでも書いてある記事があるのでこれ以上は省略
今回はこのsudoerの設定を使って以下の手順でデプロイの権限を制限した
- まずデプロイを行うユーザーをdeployとして作成
- deployグループを作りデプロイ権限を与えるユーザーをdeployグループに追加
- 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)とかでいけそうとか思えるけど、やってみてできなかったので注意。