いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.004 / 読者数:228名

こんばんは,うすだです.

仕事が,低迷しております.
仕事がない,ということではなく,いろいろとトラブっていて,気持ちがヘコんでいる,ということです.
(前者なら,ちょっとうれしいのですが…)

地球や宇宙規模で見たら,全然たいしたことないだろうと思うのですが, 自分がその状況に陥っている時は,そんなふうには思えないものですね.

…いやいや,今だけは,仕事のことは,しばし忘れます.
それでは,はりきってまいりましょう!

今週のお題 - たくさんのユーザを登録する

こんなメルマガを出させていただいていますが,たくさんのユーザを管理する,という経験をしたことがありません.
# 数百〜数千名が使用するインターネットサーバの管理,というのは, 前職で経験しましたが,登録ユーザ数は全部で数十程度でした.

ですが,大きな組織のサーバになると,たくさんのユーザを一気に登録する必要が,ときにはあるのではないかと思います.
これを,useradd コマンドや GUI の管理ツールを使って,手で登録していたら…死んでしまいそうです.

というわけで,今回は,たくさんのユーザを,えいやーで一気に登録する方法を, お知らせします.

今回は,ユーザ名,ユーザID,グループID,名前,ホームディレクトリ, シェルの書かれた CSV ファイルを用意し,それをもとに,一気にユーザ 登録するものを作ります.

では,CSV ファイルの例を示します.

  usu,501,500,USUDA Hisashi,/home/usu,/bin/bash
  yukie,502,500,USUDA Yukie,/home2/yukie,/bin/bash

こんな感じです.…適当に考えた感あふれる内容ですが.
そして,いきなりですが,答のスクリプトです.

  #!/bin/sh
  IFS=","
  while read acct uid gid gcos hdir shell
  do
    useradd -u $uid -g $gid -c "$gcos" -d $hdir -s $shell -m $acct
  done

これを,例えば,useraddcsv.sh という名前で保存しておき,前述の CSV ファイルが users.csv という名前だったら,以下のように実行します.

  # ./useraddcsv.sh < users.csv

…ああ,実現してしまいました.

さて,ここで,CSV ファイルを作る手間が結構大変なんじゃないか,という疑問が,わいてきます.
前述のような規則性のないものでは,その通りだと思います.
ですが,規則性のある場合は,CSV ファイルの生成も,自動で行ってしまえば,楽になります.

例えば,こういう場合です.

  user001,501,500,User 001,/home/user001,/bin/bash
  user002,502,500,User 002,/home/user002,/bin/bash
  user003,503,500,User 003,/home/user003,/bin/bash
  ...

1〜100までを作るスクリプトを,以下に示します.

  #!/bin/sh
  num=1
  while [ $num -le 100 ]; do
        printf "user%03d,%d,500,User %03d,/home/user%03d,/bin/bash\n" \
                $num `expr 500 + $num` $num $num
        num=`expr $num + 1`
  done

もし使えそうでしたら,条件にあわせて printf のフォーマットの箇所を変更してみてください.

先週の宿題の答え

先週の問題は,

  あるディレクトリの下にある,Linux という文字を含むファイルを探し
  てください.

でした.
その答えは,あるディレクトリを /foo/bar とすると,

  % find /foo/bar -type f -exec grep -H Linux {} \;

となります.

…ですが,最近の grep は頭がよいので,

  % grep -r /foo/bar

でいけるよ,というご指摘をいただきました.
最近の,ということですが,FreeBSD4.5 などでも -r オプションがありました. 結構さかのぼらないといけないかもしれません.

言い訳がましいですが,find の練習だと思って,お試しください.
# ご指摘ありがとうございました.> 鈴木さん

今週の宿題

今週の宿題は,こちらです.

  別のサーバにある /etc/passwd のユーザを登録するスクリプトを,
  作ってください.

サーバのリプレース時,新サーバにユーザを移すときに,使えるのではないかと, ひそかに思っております.
# これも,ひょっとすると,簡単な方法があるかもしれませんが…

別のサーバの passwd ファイルは,すでに手元にあり,root など重複するユーザの行は,あらかじめ消してあるものとします.
区切りが,, ではなく : である以外は,大きな違いはありません.

あとがき

またまた申し訳ありません.
前回,スクリプトの URL をいくつか書いていましたが,読めないようになってしまっていました.
バックナンバーは修正済です.よろしければご覧ください.
http://www.usupi.org/sysad/003.html

昔,たくさんのユーザ登録を,Windows で行う方法について,聞かれたことがあります.
詳細は覚えていませんが,Windows2000 のリソースキットに,ユーザ登録用のコマンドがあり,それを使用した記憶があります.

今から考えると,WSH などを使えば,リソースキットを買わなくてもできたんじゃないか,という気がします.(方法はわかりませんが…)

Windows って,なんでもかんでも GUI でやらなきゃいかんのかと思って, 少し気嫌いしていたのですが,WSH を知ってからは,いろいろ自動化を試みるようになりました.
宣伝になりますが,例えば以下のようなことが,できます.
銀行の残高照会など,セキュリティ的に微妙なものもありますので, 自己責任でご活用ください.(^ε^;
http://www.usupi.org/win/wsh.html
http://www.usupi.org/win/wsh2.html

ここまでご覧いただき,たいへんありがとうございました.
ご意見ご感想,突っ込み,ネタなど,お便りをお待ちしております.

それでは,また来週,お会いしましょう.

このメルマガの登録および解除は,以下からどうぞ.
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

このメルマガとは全く接点のない,こんなメルマガもやっています.
栗の絵を描いています.わたしは楽しいです.
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本