删除多个用户

删除多个用户

我是 root 用户,我正在设置一个菜单供其他用户使用。其他用户只会获得此菜单。

有两个相互关联的选项:第一个选项是搜索用户。我得到的代码是:

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

我已经检查了这段代码并且它有效,它向我显示了用户名和他们上次登录的日期。

对于第二个选项:我希望能够设置一个日期,然后使用上述命令的输出删除自该日期以来未处于活动状态的用户。

我正在使用 Linux Mint 和 Vim 文本编辑器。

答案1

你可以这样做:

root@host#lastlog -b Num_Days_Since_Last_Login | root@host#lastlog -b Num_Days_Since_Last_Login | egrep -v "^用户名|从未登录" | awk '{print $1}' | xargs -i userdel {}

其中 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

对其进行测试并移除echo以进行 forReal™。用法示例:

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

相关内容