旧ブログ記事

ユーザとグループを管理するシェルスクリプト

投稿日:2014年6月6日 更新日:

昔作ったこんなシェル

昔作ったシェルスクリプトを晒してみようシリーズ(*1)。今回はGNU/Linuxのユーザとグループをお手軽管理するシェルスクリプトです!

はい、これがそれですね。

使い方はこんな感じです!

  1. 上記のシェルスクリプトを「usrgrp_add.sh」みたいな適当な名前で適当な場所に保存する
  2. シェルスクリプトと同じディレクトリに「user.list」と「group.list」という名前で空ファイルを作成する
  3. 「user.list」と「group.list」の中身をフォーマットに合わせてご希望に沿うように編集する
  4. root権限で「usrgrp_add.sh」を実行する
  5. あら不思議!簡単にユーザとグループが!

「user.list」のフォーマットは下記のような感じ。「uid」、「ユーザ名」、「グループ名」の順番。1行1ユーザで記述するイメージ。

501:foo:group1
502:bar:group2
503:baz:group2

「group.list」のフォーマットは下記のような感じ。「gid」、「グループ名」の順番。1行1グループで記述するイメージ。

501:group1
502:group2

内部的には各ファイルの内容を順に読み取りながら各要素毎に分解し、「useradd」や「groupadd」コマンドを使ってユーザとグループを作成している……ってだけのシンプルな作り。一応、「/etc/passwd」と「/etc/group」の中身をチェックしてすでに存在しているユーザやグループが定義されている場合はスキップするようにもなっている(*2)。

もっと良い書き方はあるし、ユーザやグループの追加しかできないものなんだけども。それなりに使いやすい場面もあるかなぁと勝手に思っているのです。はい。

これら3ファイル(*3)をSVNやGitでバージョン管理下において、サーバ構築時に必ず and/or 共通で作るユーザ/グループはコイツで管理/作成する……って手順を組みたい時によく使ってます。はい。

まあ、なにかのサンプルとしても使えると思うので、晒しておきますね〜。

*1:手元にシェルスクリプトの在庫が残っている限り連載します(キリッ
*2:元々はChefとかがメジャーになる前に作ったものだけど、ある程度は冪等制を意識した作りにしてあるのだ(ドヤァ
*3:「usrgrp_add.sh」と「user.list」と「group.list」の3つね

  • この記事を書いた人
  • 最新記事

Yuta Hayakawa

ハムスターLOVEな自称PHP&GNU/Linux系エンジニア。 趣味で「自己満足系自作曲」を作っています。余裕のあるときならコラボ等歓迎(ただしボクは低レベル)。 各オンラインストアで自作曲販売中。SoundCloudでもお聞きいただけます!

-旧ブログ記事
-, ,

Copyright© 美徳という名の背徳 , 2018 All Rights Reserved.