それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

sudoers で、特定ユーザーにコマンドの許可を与える

sudoers でコマンドの許可を与える

そういえば、昔sudoers の記事書いてたけど、コマンドの許可を与える具体例書いてなかったよね。と思いだしたので、メモを書いておく。

### 
Cmnd_Alias USER_MANAGEMENT  = /usr/sbin/adduser,  /usr/sbin/useradd , /usr/sbin/usermod , /usr/bin/passwd

User_Alias MANAGER = takuya,  takahiro , yuzuru 

MANAGER USER_MANAGEMENT

逆に、◯◯以外のコマンドの許可を与える

べつに何しても良いんだけど、reboot はやめてね!とか

### 
Cmnd_Alias REBOOT = /sbin/reboot, /sbin/halt, /sbin/shutdown

naoya ALL=ALL(ALL), !REBOOT # 再起動関連はやらせない
%devops REBOOT ## 再起動だけ許可する。

これだけではカンペンきではなく、そりゃ、sudoers を変更すればできちゃうんだけど、そこまでしてreboot したら「確信犯」ということでボツに出来るよね。

root 権限を付与するユーザー

root 以外の名前で、root 権限のユーザー作るには、こうする。

root ALL=ALL(ALL)
takuya  ALL=ALL(ALL) 

ただし、root の uid で制御される部分や実行権限で制御されるファイルがあるので、完璧な root 代替には成り得ないが、殆ど全てのことが出来る。

root 権限を付与するグループ

root ALL=ALL(ALL)
%admin ALL=ALL(ALL) 

admin グループにはsudo を許可してすべてのコマンドを実行できるようにする。もちろんuidやパーミッションが設定されたファイルはその限りではないが、chown / chmod ができるので、まぁなんでもアリになる。

わざわざ chown することも少ないだろうけど・

環境変数

sudo や su のときに、まぁオプションを付ければ、環境変数をリセットできるんだけどね。

## 環境変数はリセットを基本とする
Defaults    env_reset

sudoers に記述しておけば、環境変数はリセットされて便利ですね。(むしろ、個人用途のOSなら不便なんだけどさ)

関連資料

sudoersを変更する、よく使う設定例 - それマグで!

su/sudo したときの環境変数が気になったので調べた。 - それマグで!

sudo した時に、指定の環境変数を引き継ぎ - それマグで!

参考資料

https://www.sudo.ws/man/sudoers.man.html#sudoers_options

ユーザの実行権限を柔軟に割り当てるsudoのリスクとメリット 2ページ | OSDN Magazine

あれこれ

sudoers についてまとめてあるサイトのURLをみつけたので、そこをもとにまとめ直しておいた。

ユーザーごとの権限管理とか流行遅れですか。そうですか。残念です。

係員ごとにLXCの1コンテナを割り当てて処理しちゃえばいいですもんね。わかりやす。

でもさー、LXCとか仮想化って結局はプロセスを「ユーザー毎」ではなく「コンテナ毎」に分けてるわけで、結局は似たようなもんじゃん?OpenVZがそうだったようにVZのコンセプトが生きてるものはそうだよね。プロセスをわけられるなら、ユーザーも1つの「分離単位」として十分なわけですし。

だったら、ユーザーごとの管理ってやっぱり便利だと思うんだよね。