每 1 小时自动更改 linux 用户密码

每 1 小时自动更改 linux 用户密码

我想每 1 小时更改一个 linux 用户的密码。有没有人有任何想法使用通过 cron 调用的 bash 脚本或通过 linux cronjob 直接命令?

答案1

扩展@SINA GH 的答案,但为了直接回答而将其简化:

如果 mkpasswd 可用:

echo '0 * * * * root mkpasswd -l 50 cloud-user' >> /etc/crontab

如果 mkpasswd 不可用:

echo '0 * * * * root < /dev/urandom tr -dc A-Z-a-z-0-9 | head -c50 | passwd --stdin cloud-user' >> /etc/crontab

这将在 crontab 中放置一行,以每小时自动将单个用户的密码更改为随机生成的字符串。

分解它:

echo '...' >> /etc/crontab

添加新行/条目以按计划运行

0 * * * * root

在每个工作日的每个小时的第 0 分钟以 root 身份运行

< /dev/urandom tr -dc A-Z-a-z-0-9

生成随机数据并过滤字符

| head -c50

从 stdin 中获取前 50 个字符(随机字符)

| passwd --stdin cloud-user

将 cloud-user 的密码设置为从 stdin 传入的密码(前 50 个随机字符)

答案2

每天通过随机字符串更改用户密码。
用法:autopass.sh username

安装:

将以下代码保存在目录autopass.sh中名为的文件中/root/

#!/bin/bash
set -e
MyUser=$1
RandPass=$(< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c12)
set +e
echo -e "$RandPass\n$RandPass\n" | passwd $MyUser &> /dev/null && echo "$(date) --> Passwd: $RandPass" >> /root/${MyUser}-pass.txt || echo "$(date) --> Error: failed to change pass" >> /root/${MyUser}-pass.txt
exit 0

执行权限:chmod u+x autopass.sh
编辑crontab:crontab -e并将其添加到文件中:0 3 * * * /root/autopass.sh username
每天,脚本通过随机字符串更改密码并将其保存到 /root/username-pass.txt文件中

相关内容