密码强制策略对所有操作系统和应用程序都是通用的。如果要在Linux上实施密码强制策略,请参阅以下文章。默认情况下,大多数公司都执行密码强制政策,但密码时间段因公司要求而异。通常每个人都使用90天的密码期限。用户只会在他们使用的某些服务器上更改密码,而不会在他们不经常使用的服务器上更改密码。特别是,大多数团队忘记更改服务帐户密码,这可能会导致日常工作中断,即使他们配置了基于SSH密钥的身份验证。如果用户帐户密码过期,基于SSH密钥的身份验证和cronjobs将不起作用。为避免这种情况,我们创建了一个shell脚本来向您发送10天内到期的用户帐户列表。本教程中包含两个bash脚本,可以帮助您收集有关系统中用户到期天数的信息。1)检查10天后到期的用户帐户列表此脚本将帮助您在终端上检查10天后到期的用户帐户列表。#vi/opt/script/user-password-expiry.sh#!/bin/sh/tmp/user-expiry-1.txt/tmp/user-expiry.txtcho"------------------------------------------------"echo"用户名密码过期天数"回声“---------------------------------------------"foruserninu1u2u3u4dotoday=$(date+%s)userexpdate=$(chage-l$usern|grep'密码过期'|cut-d:-f2)passexp=$(date-d"$userexpdate""+%s")exp=`expr\($passexp-$today\)`expday=`expr\($exp/86400\)`echo"$usern$expday">>/tmp/user-expiry.txtdonecat/tmp/user-expiry.txt|awk'$2<=10'>/tmp/user-expiry-1.txtcat/tmp/user-expiry-1.txt|column-t将文件用户密码到期。sh设置可执行Linux文件的权限。#chmod+x/opt/script/user-password-expiry.sh您将得到以下输出,但用户和天数可能不同。#sh/opt/script/user-password-expiry.sh--------------------------------------------------UserName密码过期天数----------------------------------------------u1-25u29u33u452)发送包含10天后到期的用户帐户列表的电子邮件此脚本将发送一封电子邮件,其中包含用于列表的邮件用户帐户。#vi/opt/script/user-password-expiry-mail.sh#!/bin/shSUBJECT="关于用户密码在“`date`”到期的信息"MESSAGE="/tmp/user-expiry.txt"MESSAGE1="/tmp/user-expiry-1.txt"TO="magesh.m@rentacenter.com"echo"----------------------------------------------">>$MESSAGE1echo"UserName密码过期天数">>$MESSAGE1echo"-----------------------------------------------">>$MESSAGE1foruserninu1u2u3u4dotoday=$(date+%s)userexpdate=$(chage-l$usern|grep'密码过期'|cut-d:-f2)passexp=$(date-d"$userexpdate""+%s")exp=`expr\($passexp-$today\)`expday=`expr\($exp/86400\)`echo"$usern$expday">>$MESSAGedonecat$MESSAGE|awk'$2<=10'>>$MESSAGE1mail-s"$SUBJECT""$TO"<$MESSAGE1rm$MESSAGErm$MESSAGE1将文件user-password-expiry-mail.sh设置为可执行的Linux文件权限#chmod+x/opt/script/user-password-expiry-mail.sh最后,添加一个cronjob来自动执行脚本。每天早上8点运行。#crontab-e08***/bin/bash/opt/script/user-password-expiry-mail.sh您将收到一封类似于第一个脚本输出的电子邮件。
