|
|
51CTO旗下网站
|
|
移步端
  • 采用Bash剧本发送包含几角内到期的用户账号列表的电子邮件

    资本学科中包含两个 bash 剧本可以协助你收集系统中用户到期天数的消息。

    笔者:Magesh Maruthamuthu 来源:Linux中华| 2020-01-14 20:00

    采用Bash剧本发送包含几角内到期的用户账号列表的电子邮件

    电码强制策略对一切操作系统和运用程序都是适用的。如果要在 Linux 上实现密码强制策略,请参阅以下文章。

    默认情况下,绝大多数商店都会强制推行密码强制策略,但根据企业的要求,电码的年华周期会有所不同。普通每个人都使用 90 远处的密码周期。他家只会在她们运用的组成部分服务器上改变密码,而不会在她们不经常利用的蒸发器上改变密码。

    特别地,绝大多数团队忘记更改服务帐户密码,这可能导致日常工作之间歇,即使他们配置有基于 SSH 密钥的位置验证。如果用户帐户密码过期,基于SSH密钥的位置验证和 cronjob 名将不帮作用。

    为了避免这种情景,咱们创建了一番 shell 剧本来向你发送 10 远处内到期的客户帐户列表。

    资本学科中包含两个 bash 剧本可以协助你收集系统中用户到期天数的消息。

    1) 检查 10 天后到期的客户帐户列表

    此脚本将救助你在终点上检查 10 远处内到期的客户帐户列表。

          
    1. # vi /opt/script/user-password-expiry.sh
          
    1. #!/bin/sh
    2. /tmp/user-expiry-1.txt
    3. /tmp/user-expiry.txt
    4. echo "-------------------------------------------------"
    5. echo "UserName The number of days the password expires"
    6. echo "-------------------------------------------------"
    7. for usern in u1 u2 u3 u4
    8. do
    9. today=$(date +%s)
    10. userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2)
    11. passexp=$(date -d "$userexpdate" "+%s")
    12. exp=`expr \( $passexp - $today \)`
    13. expday=`expr \( $exp / 86400 \)`
    14. echo "$usern $expday" >> /tmp/user-expiry.txt
    15. done
    16. cat /tmp/user-expiry.txt | awk '$2 <= 10' > /tmp/user-expiry-1.txt
    17. cat /tmp/user-expiry-1.txt | column -t

    名将文件 user-password-expiry.sh 安装为可执行的 Linux 文件权限。

          
    1. # chmod +x /opt/script/user-password-expiry.sh

    你将得到如下输出,但用户与命运可能不同。

          
    1. # sh /opt/script/user-password-expiry.sh
    2.  
    3. -------------------------------------------------
    4. UserName The number of days the password expires
    5. -------------------------------------------------
    6. u1 -25
    7. u2 9
    8. u3 3
    9. u4 5

    2) 发送包含 10 远处内到期的客户帐户列表的电子邮件

    此脚本将发送一封包含 10 远处内到期的客户帐户列表的邮件。

          
    1. # vi /opt/script/user-password-expiry-mail.sh
          
    1. #!/bin/sh
    2. SUBJECT="Information About User Password Expiration on "`date`""
    3. MESSAGE="/tmp/user-expiry.txt"
    4. MESSAGE1="/tmp/user-expiry-1.txt"
    5. TO="magesh.m@rentacenter.com"
    6. echo "-------------------------------------------------" >> $MESSAGE1
    7. echo "UserName The number of days the password expires" >> $MESSAGE1
    8. echo "-------------------------------------------------" >> $MESSAGE1
    9. for usern in u1 u2 u3 u4
    10. do
    11. today=$(date +%s)
    12. userexpdate=$(chage -l $usern | grep 'Password expires' |cut -d: -f2)
    13. passexp=$(date -d "$userexpdate" "+%s")
    14. exp=`expr \( $passexp - $today \)`
    15. expday=`expr \( $exp / 86400 \)`
    16. echo "$usern $expday" >> $MESSAGE
    17. done
    18. cat $MESSAGE | awk '$2 <= 10' >> $MESSAGE1
    19. mail -s "$SUBJECT" "$TO" < $MESSAGE1
    20. rm $MESSAGE
    21. rm $MESSAGE1

    名将文件 user-password-expiry-mail.sh 安装为可执行的 Linux 文件权限。

          
    1. # chmod +x /opt/script/user-password-expiry-mail.sh

    说到底,补充一个 cronjob 扮演自动执行脚本。那天早起 8 点运行一次。

          
    1. # crontab -e
    2. 0 8 * * * /bin/bash /opt/script/user-password-expiry-mail.sh

    你将接收一封与程序一个脚本输出类似之电子邮件。

    【编纂推荐】

    1. 腾讯开源云服务器操作系统 Tencent Linux
    2. Linux 的 18 个装 B 命令,记得全部搂一遍!
    3. 那时嵌入式系统为什么选了Linux,而没有选Windows?
    4. 如何在Linux上创办Windows 10可引导USB
    5. 每个极客都应当知道的Linux技术!
    【义务编辑: 庞桂玉 TEL:(010)68476606】

    点赞 0
  • Bash  Linux  电子邮件
  • 分享:
    大家都在看
    猜你喜欢
  • 订阅专栏+更多

    Python使用场景实战手册

    Python使用场景实战手册

    Python使用场景实战手册
    共3章 | KaliArch

    16人口订阅学习

    一步到位玩儿透Ansible

    一步到位玩儿透Ansible

    Ansible
    共17章 | 骏马金龙1

    182人口订阅学习

    云架构师修炼手册

    云架构师修炼手册

    云架构师之必不可少技能
    共3章 | Allen在路上

    131人口订阅学习

    读 书 +更多

    程序员密码学

    《程序员密码学》涉及密码学的各国研究方向,分批密码、散列函数、公钥密码以及相关的攻击,同时也讲解了密码学算法实现上试用的ASN.编码、...

    订阅51CTO邮刊

    点击这里查看样刊

    订阅51CTO邮刊

    51CTO劳务号

    51CTO官微