ローカルユーザーの実際の名前とパスワードの有効期限情報を出力するスクリプトを作成する必要があります。
これが私が今持っているものです。どんな助けでも大変感謝します。
$ cat /etc/passwd | grep '/home' | cut -d: -f5 ;chage -l {} | \
fgrep "Password expires"'| column -t
ベストアンサー1
ローカルユーザーを取得するより良い方法は、ユーザーに有効なログインシェルがあることを確認することです。
getent passwd | grep -f /etc/shells
どのように機能するかは次のとおりです。
getent passwd | grep -f /etc/shells | tr ',' ':' | \
awk -F: '{print $1, $5}' | while read USER NAME
do
echo $NAME:$(chage -l $USER| awk -F': ' '/Password expires/{print $2}')
done | column -ts:
これを使用して、xargs
次の操作を実行できます。
getent passwd | grep -f /etc/shells | tr ',' ':' | awk -F: '{print $1, $5}' | \
xargs -L1 bash -c 'echo ${@:2}:$(chage -l $1| awk -F": " "/Password expires/{print \$2}")' : | \
column -ts:
tr
次に、置換を使用すると、GECOSフィールドから直接フルネームを抽出できます,
。:
column
入力区切り文字を提供し、1つの-s
列に複数の単語の名前を保持できます。-L
使用xargs
するワイヤーユーザー名とフルネームが各コマンドに渡されるように、各コマンドに入力します。${@:2}
- 2番目の引数で始まるすべての引数(最初の引数をスキップ)
出力例:
root never
Murukesh Mohanan never
Guest never