- - PR -
Linuxユーザー一覧表示方法
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-05-08 18:03
おお〜。。これはかっこいいですね。
人間以外のユーザ(gdm,apache,nobodyなど。。)は表示したくないのですが、そんなことはできるでしょうか。。 |
|
投稿日時: 2002-05-08 18:40
> 人間以外のユーザ(gdm,apache,nobodyなど。。)は表示したくないのですが、
> そんなことはできるでしょうか。。 人間ユーザが/homeにホームディレクトリがあると仮定して、まずgrepで'/home'が含まれる行だけを取り出して、それをcutするとか。でも自分のLinuxで試したらwnnまで出てきてしまいました。(あっ、ホームディレクトリが/home/wnnになってる・・・)また、rootのホームディレクトリは/rootなので結果には現れませんでした。 もしくは '/bin/bash'でもできるのかな? $ grep '/home' /etc/passwd | cut -f1 -d: |
|
投稿日時: 2002-05-08 18:47
なるほど。。いろいろありがとうございます。
|
|
投稿日時: 2002-05-08 19:25
いまさらながら・・・、
> grep (またはegrep)を使うのは? > cat /etc/passwd | grep '正規表現' って、わざわざパイプを使わなくても、 grep '正規表現' /etc/passwd で十分でした・・・。 ![]() |
|
投稿日時: 2002-05-09 06:14
一番確実でバグがすくなくてすみそうのはUIDを使う方法じゃないでしょうか?
例えばredhatなら、一般ユーザはUIDが500から割り振られ、システムアカウントは 一般的にそれ未満のUID(大体100未満?)を使うので、 「/etc/passwdからUIDが500以上のユーザ名のみを表字する」 と考えれば、こんな感じになります。 ----------------- while read LINE do if [ `echo $LINE | cut -f3 -d:` -ge 500 ] then echo $LINE | cut -f1 -d: fi done < /etc/passwd ----------------- cutコマンド1行のものと比べるとかなりめんどくさ…。工夫すればもっと簡単で うまい方法がみつかるかもしれませんね。 |
|
投稿日時: 2002-05-09 08:10
あ。それいいですね〜。他にも色々あれば是非とも。
|
|
投稿日時: 2002-05-12 13:28
初めまして。
私はgawkやawkを使用しています。 $ awk '{ FS=":" }''{ print $1"¥t"$2"¥t"$3"¥t"$4"¥t"$5"¥t"$6 }' /etc/passwd セパレートを":"、タブ区切り表示"¥t"、表示させる列"$?" という具合です。 ¥の半角表示が書き込めないので、全角にしています。 こんなのをperlなんかでshadowファイルと組み合わせながら、スクリプトを 作成すると、異なるOS上でのサーバ間ユーザ移行なんかが楽にできたり するんですよね。 (あくまで一例にしか過ぎませんが・・・) ツールに頼りすぎている私です。ハイ。 |
|
投稿日時: 2002-05-13 08:42
お世話になります。
「異なるOS上でのサーバ間ユーザ移行なんかが楽にできたり するんですよね。」 について、もう少し詳しくお聞かせ願えないでしょうか。。 |