3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

サーバ管理を任せしたいのでsudoできるwheelなどの自分と同じグループに所属させる

Last updated at Posted at 2018-05-26

こんにちは

「サーバ管理を任せたいsudo権限とか持ったユーザ追加を追加した」かったです。
「じゃあsudoグループに追加すればいいじゃん」って話なんですが、ディストリビューションの種類とか、入っているミドルウェアの種類とかで「だいたい自分が管理していることをやってもらいたいな」っていう場合にグループを指定するのが面倒でした。

例えばウェブ系のサーバだと下記のようにwheel以外にもmysqlnginxkusanagi(ウェブサーバだとKUSANAGI最高です!)といったグループに追加してあげたいです。

$ id
uid=1002(yousan) gid=1002(yousan) groups=1002(yousan),0(root),4(adm),10(wheel),48(apache),991(mysql),992(nginx),1001(kusanagi)

自分と同じユーザに追加させる

@sak39 くんに自分と同じグループに所属させる場合。
(ただし自分ユーザ名と同じグループを除く)

$ groups | tr ' ' '\n' | grep -v `whoami` | xargs -I{} sudo usermod -aG {} sak39

結果です。

$ id sak39
uid=1008(sak39) gid=1008(sak39) groups=1008(sak39),0(root),4(adm),10(wheel),48(apache),992(nginx),991(mysql),1001(kusanagi)

うまくいってますね。

コマンド 意味
groups 所属グループをスペース区切りで表示
tr 文字の置換
grep -v whoami 自分自身のユーザグループを除く
xargs -I{} 行ごとに動作させる
usermod -aG グループに追加

変数化

対象ユーザ名が後ろに来ているので、前に変数で取ったほうが使いやすいかもです。

$ USER=sak39 groups | tr ' ' '\n' | grep -v `whoami` | sudo xargs -I{} usermod -aG {} ${USER}

これで今まで面倒だった、「存在しないグループ」に追加しようとするとエラーになっちゃうのが解消されますね。

$ sudo usermod -aG apache,http someuser
usermod: group 'http' does not exist

快適なサーバライフを送っていきます。

参考

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?