如何在固定期限后自动删除Linux用户?

Noa*_*R-C 3 linux users

我有一个以编程方式创建用户的脚本,但我们希望在 48 小时后删除用户以及他们拥有的任何文件。

我知道您可以使用 useradd 命令设置过期时间,但我不知道如何在过期时删除用户及其关联文件的下一步。

是否有捷径可寻?

谢谢!

use*_*517 5

如果您将帐户设置为在设置后 2 天到期,那么下面的脚本应该会有所帮助。

#!/bin/bash
#
nowsecs=$( date +%s )

while read account
do
    username=$( echo $account | cut -d: -f1  )
    expiredays=$( echo $account | cut -d: -f2 )
    expiresecs=$(( $expiredays * 86400 ))
    if [ $expiresecs -le $nowsecs ]
    then
        echo "$username has expired deleting"
        userdel -r "$username"
    fi
done < <( cut -d: -f1,8 /etc/shadow | sed /:$/d )
Run Code Online (Sandbox Code Playgroud)

当它运行时,它会读取影子文件并选择设置了到期日期的帐户。对于每个选定的帐户,它会计算现在是否晚于到期时间。如果是,则删除该帐户。

在测试之前确保你有备份。