Ubuntuシステム上のすべてのユーザーをリストするユーザーフレンドリーなコマンド?


22

Ubuntuシステムのコンソールでユーザーを一覧表示するために使用できるユーザーフレンドリーなコマンドはありますか?

cat /etc/passwd読みにくいユーザーのリストを取得したとき。列にエントリが並べられ、グループIDの横にカッコで囲まれたグループ名を持つアルファベット順のリストが表示されると便利です。


2
まあ、/ etc / passwd 列に配置されます...いくつかの列だけを表示したい場合は、おそらくを使用しますcut。アルファベット順にすると、がありsortます。グループ名が必要な場合は、結合を使用します(実際には列のサブセットのみを表示できる場合があります)。
njsg

回答:


27

/ etc / passwdファイルの素晴らしい出力のための良い方法:

$ column -nts: /etc/passwd

これでソートできます:

$ column -nts: /etc/passwd | sort

最後の列にグループ名がある場合(括弧なし):

$ paste -d: /etc/passwd <(groups $(cut -d: -f1 /etc/passwd) | sed 's/.*: //') | column -nts: | sort

おかげで、これらのコマンドは私が望むことをします。初心者にとってこれは非常に困難です...私はそれらのエイリアスを作成する方法を学ぶ必要があると思います。
M.ダドリー

Centosの列では、このnオプションは好まれませんでした。 column -ts: /etc/passwdうまくいきました。
user1014251

9

マシンにrootアクセスがある場合、次のことができます。

sudo grep -vE '^[^*!]+:[*!]:' /etc/shadow | sort | cut -d: -f1 | while read user; do id $user; done | column -ts' ,' | vi '+set nowrap' -

使い方

rootになって、シャドウファイルを読み取ります。ユーザーがパスワードを設定(人間のユーザを)持っているかどうかを確認したい場合にのみ、それ以外のことができますだけで、root権限が必要なcat /etc/passwd代わりにsudo grep ...

sudo 

パスワードが設定されているユーザーのみを表示します。

grep -vE '^[^*!]+:[*!]:' /etc/shadow

ユーザー名で並べ替え:

sort 

ユーザー名を除くすべての情報を破棄します。

cut -d: -f1

ユーザー名を反復処理し、グループ情報で強化します。

while read user; do id $user; done

入力を列にフォーマットします。

column -ts' ,'

viを使用して結果を表示します。

vi '+set nowrap' - 

ルートアクセス権がない場合は、

次のようなものを試してください:

cut -d: -f1 /etc/passwd | sort | while read user; do id $user; done | sed 's/\(\()\|^\)[^(]*(\|)\)/ /g' | column -t

その出力は少し異なりますが、この答えの2つの部分を完全に仕事に合ったものにするための演習として読者に任せます。(あなたはただ愛していないのですsedか?)


「読者に演習として残します...」:)
エマニュエルベルク

1

Ubuntuでは、次のようになります。

$ f1、f2 ...、$ f7に保存されている/ etc / passwdの7つのフィールド

while IFS=: read -r f1 f2 f3 f4 f5 f6 f7
do
 echo "User $f1 use $f7 shell and stores files in $f6 directory."
done < /etc/passwd

1

私がやっていることは私の目的のために働いています

ls /home

確かに、ユーザーのホームディレクトリと過去のユーザーのディレクトリのリストではなく、ユーザーのリストは実際には表示されませんが、端末が存在しないユーザーに対して実行したいコマンドは、ユーザーに通知し、削除するヒントになる可能性がありますユーザーを持たない、または移動しないホームファイル!


私はこれが好き。基本的なレベルで作業を完了します。
aalaap

0

私はこれはと簡単だろうと思ったjoinが、joinソートされるファイルを必要と結合フィールドに。そのため、一時ファイルの回避策が必要でした(?)。出力はユーザーでソートされ、ユーザー、グループ、およびグループIDが表示されます。

uag () {
  TEMP_GROUPS=/var/tmp/sorted_groups
  TEMP_USERS=/var/tmp/sorted_users
  cat /etc/group  | tr ":" " " | sort -k 3 -o $TEMP_GROUPS
  cat /etc/passwd | tr ":" " " | sort -k 4 -o $TEMP_USERS
  join -1 4 -2 3 -o 1.1,2.1,2.3 $TEMP_USERS $TEMP_GROUPS | sort
  rm $TEMP_GROUPS $TEMP_USERS
}

tr;で文字を別の文字に変換します。sortキーフィールドによると、-kファイルへの出力-o。(第一のフィールドに関して参加-1)及び第二(-2)ファイル、出力一定の最初のファイルのフィールド(-o 1.1)並びに第二(,2.1,2.3)。


/tmpFHS /var/tmpが再起動時にワイプされないことを示しているため、これはより良いことに注意してください。これは実際には必要ありません。
strugee
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.