编写getarp.sh的脚本记录局域网中各个主机的MAC地址

华盟原创文章投稿奖励计划

    编写getarp.sh的脚本记录局域网中各个主机的MAC地址
   

  脚本1:

  编写一个名为getarp.sh的脚本,记录局域网中各个主机的MAC地址。保存到/etc/ether文件中,若此文件已存在,应先进行备份。第行一条记录,第1列为IP地址,第2列为对应的MAC地址。

  分析:

  假定要扫描的网段是192.168.4.0,将192.168.4.赋值给变量NADD,作为检测地址的前缀

  使用”arping -c 2 -w 1 被检测主机的IP”命令发送ARP请求,记录MAC地址

  

编写getarp.sh的脚本记录局域网中各个主机的MAC地址

 用while循环语句检测目标主并记录MAC地址,这里检测的主机地址为2~3

  1、 用vi创建一个名为getarp.sh脚本,内容如下:

#!/bin/bash

NADD="192.168.4."

FILE="/etc/ethers"

[ -f $FILE ] && /bin/cp -f $FILE $FILE.old

HADD=1

while [ $HADD -lt 4 ]

do

  arping -c 2 -w 1 ${NADD}${HADD} &> /dev/null

  if [ $? -eq 0 ] ; then

     arp -n | grep ${NADD}${HADD} | awk '{print $1,$3}' >> $FILE

  fi

  let HADD++

done

  2、 给脚本getarp.sh增加x权限

  3、 执行脚本,查看检测到的MAC信息

  脚本2:

        编写一个脚本scanhost.sh,检查有哪些主机开启了匿名FPT服务,扫描对象为/etc/ethers文件中的所有IP地址,扫描的端口号为21

  环境描述:

  假定192.168.4.2主机为匿名访问的FTP。 192.168.4.3非匿名访部的FTP。

  创建扫描文件/etc/ethers,内容如下:

  这里采用wget下载工具:wget ftp://IP/

  1、用vi创建一个名为scanhost.sh脚本,内容如下:

#!/bin/bash

TARGET=$(awk '{print $1}' /etc/ethers)

echo "follow is anonymous FTP server:"

for IP in $TARGET

do

  wget T 3  -t 3 ftp://$IP/ &> /dev/null

  if [ $? -eq 0 ] ; then

     echo $IP 

  fi

done

  参数提示:-T 连接超时时间;-t 连接重试次数

  2、 给脚本getarp.sh增加x权限

  3、 执行脚本,查看扫描到的信息

  脚本3:

       计算/etc/目录中所有*.conf配置文件所占用的总空间大小

  用vi创建一个名为confsize.sh脚本,内容如下:

#!/bin/bash

sizenums=$(ls -l $(find /etc/ -type f -a -name *.conf) | awk '{print $5}')

total=0

for i in $sizenums

do

  total=$(expr $total + $i)

done

echo "total size of conf files: $total bytes."

 

   脚本4:

 

         编写一个脚本chkfileown.sh,对于使用bash作为登录shell的系统中,检查他们在/opt目录中的文件数量并列出具体的数值及对应的用户账户

   1、用vi创建一个名为chkfileown.sh脚本,内容如下:

#!/bin/bash

DIR="/opt/"

validusers=$(grep "bash$" /etc/passwd | awk -F: '{print $1}')

for username in $validusers

do

  num=$(find $DIR -user $username | wc -l)

  echo "$username have $num files."

done

  2、给脚本getarp.sh增加x权限

  3、执行脚本,查看执行后的信息(注:/opt目录下若没有任何文件,可事先创建一些测试文件)

  脚本5:

    编写脚本用于批量添加用户,要求如下:

  要求提供交互功能,当管理员执行该脚本时,可以根据提示指定需添加的用户数量(少于100)、用户名前缀、并能够设置这些用户账户的失效时间,初始密码。

  用户名编号统一使用两位数,如使用”01”、”02”、”03”的形式,而不是”1”、”2”、”3”的形式。

  编写对应的批量删节除用户脚本,要能够通过命令行参数指定用户名前缀,执行脚本后删除所有使用了该前缀的用户账户,但要防止删除root用户。

  批量添加用户脚本:

  1、 批量添加用户脚本myuadd.sh内容如下:

#!/bin/bash

read -p "input nu <1-99>:" nu

read -p "input name:" name

read -p "input date <YYYY-MM-DD>:" date

read -p "input password:" password

a=1

if [ $nu -lt 100 ]

then

while [ $a -le $nu ]

  do

    if [ $a -lt 10 ]

    then

          useradd -e $date "$name"0"$a"

          echo "$password" | passwd --stdin "$name"0"$a" &>/dev/null

    else

          useradd -e $date "$name""$a"

echo "$password" | passwd --stdin "$name""$a" &>/dev/null

    fi

    a=`expr $a + 1`

done

fi

  2、给脚本myuadd.sh增加x权限

  3、执行脚本myuadd.sh,添加用户

  4、验证结果:查看/etc/passwd文件是否添了新用户

  批量删除用户脚本:

  1、批量删除用户脚本myudel.sh内容如下:

#! /bin/bash

if [ $# -le 0 ] ; then

  echo "error:the prefix of users has not be specified."

  echo "usage:$0 nameprefix"

  exit 1

fi

tar jcvf /root/users.cnf.tar.gz /etc/passwd /etc/shadow /etc/group &> /dev/null

tobedel=`grep "$1" /etc/passwd | cut -d ":" -f 1 | grep -v "root"`

for u in $tobedel

do

  userdel -r $u &> /dev/null

done

  2、给脚本myudel.sh增加x权限

  3、执行脚本myudel.sh,删除用户。如myudel.sh caiwu03或myudel.sh caiwu

  4、验证结果:查看/etc/passwd文件中已删除的用户是否还存在。

  附:

  我们可以用env或export命令查看环境变量,使用set命令查看所有变量(包括环境变量和自定义变量),使用unset命令删除变量。

  LINUX系统中大多数版本都有随机数生成器,就是/dev/random文件。可以通过这个随机数文件相关的系统环境变量$RANDOM来随机取得随机数。在BASH环境下,这个RANDOM变量的内容介于0——32767之间,(man bash, 搜索 RANDOM 可以看到说明)所以,只要echo $RANDOM时,系统就会主动随机取出一个介于0——32767的数值。例如要想0-9之间的随机数时,可以用declare声明数值类型。

  

编写getarp.sh的脚本记录局域网中各个主机的MAC地址

  或

  

编写getarp.sh的脚本记录局域网中各个主机的MAC地址

原文地址:https://hack.77169.com/201510/215285.shtm

本文原创,作者:华盟君,其版权均为华盟网所有。如需转载,请注明出处:https://www.77169.net/html/20241.html

发表回复