フェイルセーフの方法

フェイルセーフの方法

私は Linux 初心者で、正確に言うと、Ubuntu OS の前に座るのは今日が初めてです。学習目的でユーザーを追加し、システム内のすべてのユーザーを確認したいと考えています。ユーザーを確認するにはどうすればいいですか? 複数の方法がある場合は、すべて教えてください。

答え1

フェイルセーフの方法

これらは にリストされています/etc/passwd。ただし、これには「システム」ユーザーも含まれます。通常、「通常の」ユーザーは UID 1000 から始まるため、 でこれらをフィルタリングできます。

awk -F ':' '$3>999' /etc/passwd

注意: UID 65534 の「nobody」というユーザーもいるので、誤検知がいくつかあります。

コードの説明

  • awk -F ':'awkフィールド区切り文字 と一緒に使用します:
  • '$3>999'3 番目のフィールドが 999 より大きい場合にのみ行を印刷します。
  • /etc/passwdこのファイルから読み取ります。

もっと簡単な方法

ほとんどのユーザーは、ホームにディレクトリを持っています。ただし、ユーザーにこのディレクトリがない場合、これは機能しない可能性があります。

ls /home

(また、lost+foundユーザーに関連付けられていないため、存在する場合は無視します。)

答え2

getent passwd

この方法の利点は、このシステムで定義されているユーザー (つまり、 にリストされている/etc/passwdユーザー) と、シングル サインオン方式で取り込まれる可能性のあるユーザー (LDAP ユーザーなど) の両方をリストできることです。

システム以外のユーザーのみを表示する場合:

getent passwd | awk -F ':' '$3>999' | grep -v nobody

関連情報