“敞开成长之旅!这是我参加「日新计划 2 月更文应战」的第 11 天,点击查看活动详情”

1.过程

最近大火的ChatGPT声称能够干掉程序员,今天测试就用ChatGPT开发一个Liunx基线查看脚本

使用chatgpt开发一个Liunx基线检查脚本
运用vi在liunx中复制这段脚本创立一个脚本文件,看一下效果。(脚本记住chmod增加执行权限)

执行看下效果

使用chatgpt开发一个Liunx基线检查脚本
能够看到查看项主要有:

使用chatgpt开发一个Liunx基线检查脚本
这明显不能满足我们的要求,连端口敞开信息都没有

使用chatgpt开发一个Liunx基线检查脚本
他居然让我自己兼并,不智能,让他兼并一下

使用chatgpt开发一个Liunx基线检查脚本
再去体系上张贴运转一下,现已能够查看敏感端口了

使用chatgpt开发一个Liunx基线检查脚本
再增加一个反常用户登录的查看,这次果然成长了,chatGPT先把当时的要查看的脚本列出来,然后自己兼并脚本了,点赞!

使用chatgpt开发一个Liunx基线检查脚本

再运转一下,现已能够查看登录用户了

使用chatgpt开发一个Liunx基线检查脚本
接下来再增加一些其他的查看项:

查看长时刻不登录用户

查看密码有效期

体系要害目录权限

生成的脚本较长的话中心会有终端的可能会中断,需求从头生成

最终让脚本把注释改完中文,增加分割线。

使用chatgpt开发一个Liunx基线检查脚本

最终看一下这个脚本吧。

#!/bin/bash
echo "开始 Linux 体系基线,弱口令,以及未激活用户帐户查看" 
# 查看体系正常运转时刻 
echo -n "体系正常运转时刻: " 
uptime 
echo "-------------------------------" 
# 查看已登录用户数 
echo -n "已登录用户数: " 
who | wc -l 
echo "-------------------------------" 
# 查看可用磁盘空间 
echo -n "磁盘空间: " 
df -h 
echo "-------------------------------" 
# 查看内存运用情况 
echo -n "内存运用情况: " 
free -h 
echo "-------------------------------" 
# 查看内存运用最多的前 5 个进程 
echo -n "内存运用最多的前 5 个进程: " 
ps -eo pmem,pid,user,args | sort -k 1 -r | head -6 
echo "-------------------------------" 
# 查看高风险敞开端口 
echo "正在查看高风险敞开端口..." 
high_risk_ports=(21 22 23 25 53 80 110 443 1433) 
for port in "${high_risk_ports[@]}"; do 
    if lsof -i :$port; then 
        echo "高风险端口 $port 已敞开!" 
    fi
 done 
 echo "-------------------------------" 
 # 查看意外的用户登录 
 echo "正在查看意外的用户登录..." 
 expected_users=(root admin user1) 
 logged_in_users=($(who | awk '{print $1}')) 
 for user in "${logged_in_users[@]}"; do 
     if [[ ! " ${expected_users[@]} " =~ " ${user} " ]]; then 
         echo "意外的用户登录: $user" 
     fi 
 done 
 echo "-------------------------------" 
# 查看不活动的用户帐户 
echo "查看不活动的用户帐户..." 
inactive_period=90 
today=$(date +%s) 
for user in $(cut -d: -f1 /etc/shadow); do 
    last_login=$(lastlog -u $user | tail -1 | awk '{print $NF}') 
    if [[ $last_login == "Never" ]]; then 
        echo "用户 $user 从未登录过!" 
     else 
         last_login_seconds=$(date -d "$last_login" +%s) 
             if [ -n "$last_login_seconds" ]; then 
                 if (( $today - $last_login_seconds >= $inactive_period*24*60*60 )); then
                     echo "用户 $user 现已不活动超越 $inactive_period 天!" 
                 fi 
              else 
                  echo "计算用户 $user 的最终一次登录时刻失利" 
              fi 
       fi 
 done 
 echo "-------------------------------" 
 # 定义要害体系目录列表 
 critical_dirs=(/bin /sbin /usr/bin /usr/sbin /etc /boot /lib /lib64 /root) 
 # 遍历每个要害目录 
 for dir in "${critical_dirs[@]}"; do 
 # 获取该目录的权限
 permissions=$(stat -c "%a" $dir) 
 # 查看权限是否过于宽松 
 if [ $permissions -gt 755 ]; then 
     echo "目录 $dir 的权限过于宽松:$permissions" 
 fi 
 done 
 echo "-------------------------------" 
 echo "完成了 Linux 体系基线查看"

2. 总结

当然,chatgpt还有很多问题,比方生成较长的脚本的时候经常会卡住,经常会让你从头恳求或许从头登录,再比方脚本里一些字段没有判空会造成执行失利,但整体来说,假如让他完成确认的单个需求,速度和代码质量还真的能够。