- PR -

Linuxユーザー一覧表示方法

投稿者投稿内容
ちとり
大ベテラン
会議室デビュー日: 2002/05/12
投稿数: 113
お住まい・勤務地: 神奈川県
投稿日時: 2002-05-13 21:53
> 「異なるOS上でのサーバ間ユーザ移行なんかが楽にできたり
> するんですよね。」
私の経験をもって説明致します。

例えば、アカウント600人を持つサーバが存在するとします。
このサーバのOSをBSDiとし、老朽化の為サーバをSolarisとして
リプレースしたいと思うが、システムが全く(ではないけど)違い
ますよね・・・。
しかし全てのアカウント等を最初から作り直すのは大変です。

違いは、[ホームディレクトリの場所(任意)]と[パスワードファイルの記法]、
[各アカウントが使用しているシェル(パス)]等にあたるので、それらを
awkを使用して一気に作成してしまおう、という魂胆です。

BSDiのパスワードファイルは、ファイル[/etc/master.passwd]と
[/etc/passwd]に書かれており、前者にはsolarisで例えるファイル
[/etc/shadow]と[/etc/passwd]が合体したテンプレートになっています。

コレを利用し、前者と後者のファイルを組み合わせて、solarisの
[/etc/shadow]や[/etc/passwd]を作成したり、ホームディレクトリ
(パーミッション付き)作成スクリプトの作成が可能です。

スクリプト自体は若干長くなるので書き込みませんが、私のような単純な
ツールしか使えない人にとっては、手軽で良いと感じています。
# シャドーをデコード可能であれば、かなり楽なんですが、
# パスワードの意味が無くなってしまいますよね・・・。

一例として、シャドー共通って事で、[BSDi]→[Solaris]について書いてみました。
McLaren
ぬし
会議室デビュー日: 2002/01/15
投稿数: 784
お住まい・勤務地: 東京
投稿日時: 2002-05-14 08:11
 WindowsのサーバーのユーザーをLinuxにリプレースすることはできるのでしょうか。。
しょむ
ぬし
会議室デビュー日: 2001/09/06
投稿数: 430
投稿日時: 2002-05-14 10:09
egrep で UID >= 500 をとる方法
egrep '^[^:]+:[^:]+:([5-9][0-9]{2}|[1-9][0-9]{3,}):' /etc/passwd | cut -d: -f1

# もちろん grep でもがんばりゃ展開できますが。

あとは
grep '/bin/[^/]*sh$' /etc/passwd | cut -d: -f1

なんてのも手かなぁ。
もちろん真面目に /etc/shells からひっぱってきたほうがいいんですが。

# 手元では意図しないものがいくつか引っ掛かりました…
# login shell なんて指定する必要のない物…うぅ。


[ メッセージ編集済み 編集者: しょむ 編集日時 2002-05-14 10:13 ]
ちとり
大ベテラン
会議室デビュー日: 2002/05/12
投稿数: 113
お住まい・勤務地: 神奈川県
投稿日時: 2002-05-14 19:55
引用:

okumuraさんの書き込み (2002-05-14 08:11) より:
 WindowsのサーバーのユーザーをLinuxにリプレースすることはできるのでしょうか。。



Windowsのアカウントは、ログイン時の認証方法(Kerberos)が違う為、
手動で移す他無いと思いますよ。

スキルアップ/キャリアアップ(JOB@IT)