私は現在、UNIXシステム上のユーザーの最後のパスワード変更を表示するコマンドを理解しようとしています。
コマンドpasswd -Saを実行してみましたが、00/00/0000でフォーマットされたパスワード変更日が表示されます。ただし、そのコマンドの最後のユーザーの日付のみを一覧表示したいと思います。コマンドをgrepにパイプしてみましたが、構文が正しくないようです。
このコマンドの結果として出力される日付だけを探しています。
試行された現在のコマンド:
grep $USER | passwd -Sa
私のエラーに関するどんな助けでもありがたいです!
より多くの情報を提供することは、より良い答えを得る。オフハンド、OpenSUSEで、私はそれを見る
_passwd -S -a
_
次のように、_/etc/passwd
_の各エントリのレコードを提供します。
_thomas PS 03/01/2013 0 99999 7 -1
_
だからあなたはawkでそれをフィルタリングすることができます:
_passwd -S -a | awk -v user=$USER '{ if ( $1 == user ) { printf "%s\n", $3; } }'
_
ただし、passwd
コマンドはこれをroot
として実行する必要があるため、スクリプトは_$USER
_変数(currentuser)。 root
が必要な理由は、公開されていない_/etc/shadow
_の内容を読み取っているからです。
別のレポートを表示する chage
を使用することもできますが、簡単なチェックでは、ユーザーのパスワードの入力を求められます(これはおそらく望んでいるものではありません)。
chage
プログラムを使用するには、シャドウパスワードファイルが必要です。
chage
コマンドは、rootユーザーに制限されていますが、_-l
_オプション。権限のないユーザーが、パスワードまたはアカウントの有効期限が切れる時期を判断するために使用できます。
参考文献:
-S
_および_-a
_を表示chage
を表示しますが、パスワードのプロンプトを省略します...これは宿題のように聞こえるので、
sort
は入力を数値で並べ替えることができ、必要に応じて定義された複数の列で並べ替えることができます。cut
は、一連の文字を使用して列セパレーターを定義し、入力列のサブセットを印刷できます。a | b
は、コマンドa
の出力をコマンドb
に送信します。head
とtail
は、それぞれファイルの最初と最後の行を返します。Sudo
を使用して)他のユーザーについて問い合わせることはできません。 passwd --status
を使用してcurrentユーザーのステータスを取得するだけで、これ(およびgrep
ping)を回避できます。