Политика принудительного применения пароля является общей во всех операционных системах и приложениях.
Политика принудительного применения пароля будет применяется большинством компаний, но период времени будет отличаться.
Обычно все используют 90-дневный цикл паролей.
Пользователь как правило изменяет пароль только на некоторых серверах, которые он часто использует, и не изменяет пароль на серверах, которые использует редко.
В частности, большинство команд забывают изменить пароль учетной записи какой -ибо службы, что может привести к нарушению выполнения обычных заданий, даже если они настроены для работы с аутентификацией на основе ключа SSH.
Аутентификация на основе ключей SSH и cronjobs не будут работать, если истечет срок действия пароля учетной записи пользователя.
Чтобы избежать этой ситуации, мы создали скрипт оболочки, который отправляет вам список учетных записей пользователей, срок действия которых истекает в течение 10 дней.
В это руководство включены два скрипта bash, которые помогут вам собрать информацию о истечении срока действия пользователей в вашей системе.
1) Bash-скрипт для проверки списка учетных записей пользователей, срок действия которых истекает через 10 дней
Этот скрипт поможет вам проверить список учетных записей пользователей, срок действия которых истекает через 10 дней!
# vi /opt/script/user-password-expiry.sh
#!/bin/sh
/tmp/user-expiry-1.txt
/tmp/user-expiry.txt
echo "-------------------------------------------------"
echo "UserName The number of days the password expires"
echo "-------------------------------------------------"
for usern in u1 u2 u3 u4
do
today=$(date +%s)
userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2)
passexp=$(date -d "$userexpdate" "+%s")
exp=`expr \( $passexp - $today \)`
expday=`expr \( $exp / 86400 \)`
echo "$usern $expday" >> /tmp/user-expiry.txt
done
cat /tmp/user-expiry.txt | awk '$2 <= 10' > /tmp/user-expiry-1.txt
cat /tmp/user-expiry-1.txt | column -t
Дайте права на выполнение:
# chmod +x /opt/script/user-password-expiry.sh
Вы получите результат, подобный приведенному ниже.
Но имя пользователя и дни будут другими.
# sh /opt/script/user-password-expiry.sh
-------------------------------------------------
UserName The number of days the password expires
-------------------------------------------------
u1 -25
u2 9
u3 3
u4 5
2) Bash-скрипт для отправки электронной почты со списком учетных записей пользователей, срок действия которых истекает через 10 дней
Этот скрипт отправит письмо со списком учетных записей пользователей, срок действия которых истекает через 10 дней.
# vi /opt/script/user-password-expiry-mail.sh
#!/bin/sh
SUBJECT="Information About User Password Expiration on "`date`""
MESSAGE="/tmp/user-expiry.txt"
MESSAGE1="/tmp/user-expiry-1.txt"
TO="itsecforu@gmail.com"
echo "-------------------------------------------------" >> $MESSAGE1
echo "UserName The number of days the password expires" >> $MESSAGE1
echo "-------------------------------------------------" >> $MESSAGE1
for usern in u1 u2 u3 u4
do
today=$(date +%s)
userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2)
passexp=$(date -d "$userexpdate" "+%s")
exp=`expr \( $passexp - $today \)`
expday=`expr \( $exp / 86400 \)`
echo "$usern $expday" >> $MESSAGE
done
cat $MESSAGE | awk '$2 <= 10' >> $MESSAGE1
mail -s "$SUBJECT" "$TO" < $MESSAGE1
rm $MESSAGE
rm $MESSAGE1
Дайте права на выполнение:
# chmod +x /opt/script/user-password-expiry-mail.sh
Наконец, добавьте cronjob, чтобы автоматизировать это.
Джоба будет запускаться каждый день в 8 утра.