尋ねる:ユーザーが正常に追加されたことを確認するには、cut コマンドを使用してすべてのユーザーをリストします。
質問:リストが非常に長いため、ユーザーを見つけるには出力をスクロールする必要があります。
必要:ユーザー作成日に基づいてソートします。作成日を表示することは必須ではありませんが、利点があります。
試験を終えた:
cut -d : -f 1 /etc/passwd | sort -t
cut -d : -f 1 /etc/passwd | sort -t':' -k2n
cut -d : -f 1 /etc/passwd | ls
答え1
ファイル/etc/passwd
には日付情報がないため、ここでは役に立ちません。
システムユーザー以外のすべてのユーザーのディレクトリが必要です/home/%username%
。/home
(シェルループを使用して)以下のすべてのディレクトリにアクセスし、各ディレクトリで最も古いファイルまたはディレクトリを報告できます。良い:
$ for dir in /home/*; do
ls -lart --time-style=long-iso "${dir}" |
grep '^-' | head -n 1 |
awk '{ printf ("%-10s %s\n", $3, $6); }'
done
ls: cannot open directory '/home/lost+found': Permission denied
paul 2017-03-16
1001 2021-03-02
幸いなことに、ファイルの逆日付を使用している人がいない場合は、touch
ユーザー名(または削除された場合は数値uid)とホームディレクトリの最も古いファイルの日付が表示されます。
一般に、解析の出力は健全ではありませんが、ls
必要なフィールドはかなり予測可能です。
/home/viewerディレクトリ(シェルの拡張順序を決定します)があるため、出力順序は奇妙に見えますが、ユーザービューアは削除され、uidは1001です。
ユーザーを見つけるためになぜリストをスクロールする必要があるのか、日付で並べ替えると、なぜこれが簡単になるのかわかりません。出力をファイルにリダイレクトし、エディタを使用して検索したり、grepを使用してユーザー名を検索したり、出力を2番目の列で並べ替えることができます。
ユーザーを追加する場合の動作を証明する従来の方法は、そのユーザーとしてログインしてデフォルトのパスワードを変更し、ローカル要件(標準のプロンプトやエイリアスなど)を変更し、いくつかの簡単なコマンドが機能していることを確認してから確認することです。新しいユーザーが初めてログインしたときにログインするときに自分のパスワードを設定してください。
答え2
Q:ユーザーが正常に追加されたことを確認するには、cutコマンドを使用してすべてのユーザーを一覧表示します。
追加が成功したことを確認する必要がある場合は、簡単に確認できます。
$ cut -d: -f1 <(getent passwd user)
問題:リストが非常に長いため、ユーザーを見つけるには出力をスクロールする必要があります。
上記のように、使い慣れたツールを使用して出力をフィルタリングするだけで、getent
フィルタリングも可能です。
要件:ユーザー作成日に基づいてソートしてください。作成日を表示することは必須ではありませんが、利点があります。
システムにパスワードポリシーがなく、ユーザーがプロビジョニングされてからユーザーパスワードが変更されていない場合は、このchage
コマンドを使用してパスワードが最後に変更された日付を取得できます。この日付はパスワードが生成された日付である可能性が高いです。構成は、月の列 2 に基づいてソートされます。
cut -d: -f1 <(getent passwd) | while read -r line; do
c_date=$(sudo chage --list "$line" | awk -F: '/Last password change/{print $NF}')
printf '%s\t%s\n' "$line" "$c_date"
done | sort -k4n -k3n -k2M
答え3
cut -d: -f1,3 /etc/passwd | sort -k2n
cut -d: -f1,3 /etc/passwd
最初のフィールド(ユーザー名)と3番目のフィールド(作成日)を抽出します。sort -k2n
出力は、2番目のフィールド(作成日)に基づいて数値の昇順(-nフラグ)で行をソートするソートにパイプされます。
この-k2
オプションは、sort
2番目のフィールドをソートキーとして使用することを示します。
これにより、作成日によってソートされた既存のユーザーが一覧表示され、最も古いユーザーが最初に作成されます。