複数のユーザーを削除

複数のユーザーを削除

私はrootで、他のユーザーが利用できるメニューを設定しています。他のユーザーにはこのメニューのみが表示されます。

相互に関連する2つのオプションがあります。最初のオプションは、ユーザーを検索することです。私が取得するコードは次のとおりです。

last | awk '{print $1,$4,$5,$6,$7} ' 

このコードの確認はうまくいき、ユーザー名と最後にログインした日付が表示されます。

2番目のオプションの場合:日付を設定してから、上記のコマンドの出力を使用して、その日付以降にアクティブでないユーザーを削除したいと思います。

私はLinux MintとVimのテキストエディタを使用しています。

答え1

次のことができます。

root@host#lastlog -b Num_Days_Since_Last_Login | root@host#lastlog -b Num_Days_Since_Last_Login | egrep -v "^username |ログインしていない" | awk '{print $1}' |

ここで、Num_Days_Since_Last_Login は最後のログイン以降の整数日数です。

答え2

完璧なソリューション:

#!/bin/bash

maxdate=$(date -d "$1" +%s) || exit 1
daysdate=$((($(date +%s)-maxdate)/(3600*24)))

LANG=C lastlog -b $daysdate -u 1000- |
    awk 'NR>1{print $1}' |
    xargs -n1 echo userdel

テストしてechoforReal™を削除してください。使用例:

./script.sh 'Fri Dec  5 17:00:06 CET 2013'

関連情報