在Linux上检查用户登录成功与失败的shell脚本

Linux管理员的典型任务之一是检查Linux系统中成功和失败的登录尝试。

手动验证它们非常困难,因为“ /var/log/secure”文件的输出看起来很尴尬。

为了使此操作更轻松,更有效,我们需要编写一个bash脚本。

是的,您可以使用以下Bash脚本实现此目的。

这些脚本将显示给定日期登录系统的用户数。此外,它显示成功的登录尝试和失败的登录尝试。

第一个外壳脚本允许您验证“ /var/log/secure”文件中可用日期的用户访问信息。

第二个shell脚本允许您每天发送包含用户访问信息的邮件。

方法1:在Linux上检查用户登录成功与失败的Shell脚本

该脚本使您可以从终端验证给定日期的用户访问信息。

# vi /opt/scripts/user-access-details.sh

#!/bin/bash

echo ""

echo -e "Enter the Date, Use Double Space for date from 1 to 9 (Nov  3) and use Single Space for date from 10 to 31 (Nov 30): c"

read yday

MYPATH=/var/log/secure*

tuser=$(grep "$yday" $MYPATH | grep "Accepted|Failed" | wc -l)

suser=$(grep "$yday" $MYPATH | grep "Accepted password|Accepted publickey|keyboard-interactive" | wc -l)

fuser=$(grep "$yday" $MYPATH | grep "Failed password" | wc -l)

scount=$(grep "$yday" $MYPATH | grep "Accepted" | awk '{print $9;}' | sort | uniq -c)

fcount=$(grep "$yday" $MYPATH | grep "Failed" | awk '{print $9;}' | sort | uniq -c)

echo "--------------------------------------------"

echo "       User Access Report on: $yday"

echo "--------------------------------------------"

echo "Number of Users logged on System: $tuser"

echo "Successful logins attempt: $suser"

echo "Failed logins attempt: $fuser"

echo "--------------------------------------------"

echo -e "Success User Details:n $scount"

echo "--------------------------------------------"

echo -e "Failed User Details:n $fcount"

echo "--------------------------------------------"

将可执行的Linux文件权限设置为“ user-access-details-1.sh”文件。

#chmod +x /opt/scripts/user-access-details-1.sh

运行脚本时,您将收到类似以下的警报。

# sh /opt/scripts/user-access-details.sh

Enter the Date, Use Double Space for date from 1 to 9 (Nov  3) and use Single Space for date from 10 to 31 (Nov 30): Nov  6

------------------------------------------

User Access Report on: Nov  6

------------------------------------------

Number of Users logged on System: 1

Successful logins attempt: 1

Failed logins attempt: 0

------------------------------------------

Success User Details:

1 root

------------------------------------------

Failed User Details:

------------------------------------------

运行脚本时,您将收到类似以下的警报。

# sh /opt/scripts/user-access-details.sh

Enter the Date, Use Double Space for date from 1 to 9 (Nov  3) and use Single Space for date from 10 to 31 (Nov 30): Nov 30

------------------------------------------

User Access Report on: Nov 30

------------------------------------------

Number of Users logged on System: 20

Successful logins attempt: 14

Failed logins attempt: 6

------------------------------------------

Success User Details:

1 daygeek

1 root

3 u1

4 u2

1 u3

2 u4

2 u5

------------------------------------------

Failed User Details:

3 u1

3 u4

------------------------------------------

方法2:使用shell脚本通过电子邮件警报检查成功和失败的用户登录尝试。

该shell脚本允许您每天通过电子邮件发送包含用户访问详细信息的邮件,以获取昨天的日期。

# vi /opt/scripts/user-access-details-2.sh

#!/bin/bash

/tmp/u-access.txt

SUBJECT="User Access Reports on "date""

MESSAGE="/tmp/u-access.txt"

TO="daygeek@gmail.com"

MYPATH=/var/log/secure*

yday=$(date --date='yesterday' | awk '{print $2,$3}')

tuser=$(grep "$yday" $MYPATH | grep "Accepted|Failed" | wc -l)

suser=$(grep "$yday" $MYPATH | grep "Accepted password|Accepted publickey|keyboard-interactive" | wc -l)

fuser=$(grep "$yday" $MYPATH | grep "Failed password" | wc -l)

scount=$(grep "$yday" $MYPATH | grep "Accepted" | awk '{print $9;}' | sort | uniq -c)

fcount=$(grep "$yday" $MYPATH | grep "Failed" | awk '{print $9;}' | sort | uniq -c)

echo "--------------------------------------------" >> $MESSAGE

echo "       User Access Report on: $yday" >> $MESSAGE

echo "--------------------------------------------" >> $MESSAGE

echo "Number of Users logged on System: $tuser" >> $MESSAGE

echo "Successful logins attempt: $suser" >> $MESSAGE

echo "Failed logins attempt: $fuser" >> $MESSAGE

echo "--------------------------------------------" >> $MESSAGE

echo -e "Success User Details:n $scount" >> $MESSAGE

echo "--------------------------------------------" >> $MESSAGE

echo -e "Failed User Details:n $fcount" >> $MESSAGE

echo "--------------------------------------------" >> $MESSAGE

mail -s "$SUBJECT" "$TO" < $MESSAGE

将可执行权限设置为“ user-access-details-2.sh”文件。

#chmod +x /opt/scripts/user-access-details-2.sh

最后添加一个cronjob以使其自动化。它将每天8点运行。

# crontab -e

0 8 * * * /bin/bash /opt/scripts/user-access-details-2.sh

注意:每天8点您将收到一封电子邮件警报,用于提醒前一天的用户访问信息。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任

linux脚本登录启动失败,在Linux上检查用户登录成功与失败的shell脚本相关推荐

  1. Web上的用户登录功能安全

    转载自:http://www.daimami.com/web/217218.htm 你会做Web上的用户登录功能吗? Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后, ...

  2. linux中检测用户信息的命令是,在Linux系统上检查用户所属组

    Linux 管理员经常进行的一项操作之一:那就是把用户添加到现有组,这是在一些大环境工作的 Linux 管理员日常经常从事的操作之一,所以经常会在 Linux 系统上检查用户所属组,本文就来谈谈这方面 ...

  3. 实现Web上的用户登录功能

    https://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做 ...

  4. web上的用户登录功能

    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面 的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个 ...

  5. 你会做Web上的用户登录功能吗?

    你会做Web上的用户登录功能吗? 2011年8月25日 陈皓    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能 ...

  6. Web上的用户登录功能——酷壳_陈皓

    为什么80%的码农都做不了架构师?>>>    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能. ...

  7. [转]你会做Web上的用户登录功能吗?

    Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关 ...

  8. Android启动过程中执行一个C语言的应用程序或者执行shell脚本

    Android启动过程中执行一个C语言的应用程序或者执行shell脚本 一.Android启动过程中去对系统做一些设置,如修改某些文件夹的属性和文件的权限,可在init.rc中增加service执行s ...

  9. 如何在redhat8里使用gcc命令_如何使用who命令检查用户登录信息

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本教程主要介绍如何使用who命令检查用户登录信息. 如 ...

最新文章

  1. R语言ggplot2包旋转(Rotate)可视化图像轴标签实战
  2. 2.1顺序表(链表)
  3. Inside Dynamics Axapta源代码赏析(五)
  4. 在php中源代码怎么查看,查看PHP Closure的源代码
  5. matlab基于dct的图像压缩编码解码_音频压缩编码的基本原理详解
  6. 当MySQL执行XA事务时遭遇崩溃,且看华为云如何保障数据一致性
  7. hive sql 报错后继续执行_Hive迁移Presto在OPPO的实践
  8. MySQL Server 安装失败
  9. 算法笔记_二分查找/斐波那契查找
  10. java 学习资料总结
  11. excel替换快捷键_excel怎样查找替换 excel查找替换快捷键,看完你学会了么
  12. web展示萤石云视频
  13. LeetCode每日一题495. 提莫攻击
  14. 图像去雾,利用《bringing old photos back to life》 训练并修改
  15. pandas DataFrame的xs用法
  16. android 市场 历史版本,安卓市场旧版本
  17. 微信小程序使用qrcode生成二维码(可用于微信收款)
  18. git删除未监视的文件(untracked files)命令用法
  19. 育儿-《让孩子远离焦虑》书中的精髓:家长如何帮助孩子解决他们自身的焦虑问题。
  20. 联发科和麒麟哪个比较好

热门文章

  1. js原型链。。fuck
  2. js基础教程学习笔记
  3. [zz]C#中的Type类和Assembly类
  4. 老人言 摘自云风的blog
  5. Mr.J-- jQuery学习笔记(二十二)--入口函数
  6. POCO C++库导游【转】
  7. Windows Vista for Developers——第二部分:深入分析任务对话框
  8. [lct] Luogu P4219 大融合
  9. linux如何安装django
  10. redis-springboot-redistemplate更改序列化方式