我有一个以编程方式创建用户的脚本,但我们希望在 48 小时后删除用户以及他们拥有的任何文件。
我知道您可以使用 useradd 命令设置过期时间,但我不知道如何在过期时删除用户及其关联文件的下一步。
是否有捷径可寻?
谢谢!
如果您将帐户设置为在设置后 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)
当它运行时,它会读取影子文件并选择设置了到期日期的帐户。对于每个选定的帐户,它会计算现在是否晚于到期时间。如果是,则删除该帐户。
在测试之前确保你有备份。
| 归档时间: |
|
| 查看次数: |
2738 次 |
| 最近记录: |