fasfdsaf

$P'$/{print $11}'|wc -l` if [ $n -eq 0 ];then echo "该PID不存在!!" exit fi
一、根据PID过滤进程所有信息

$P'$/{print $11}'|wc -l if [ $n -eq 0 ];then echo "该PID不存在!!" exit fi echo "--------------------------------" echo "进程PID: $P" echo "进程命令:ps -aux| awk '$2~/^'$P'$/{print $11}'" echo "进程所属用户: ps -aux| awk '$2~/^'$P'$/{print $1}'" echo "CPU占用率:ps -aux| awk '$2~/^'$P'$/{print $3}'%" echo "内存占用率:ps -aux| awk '$2~/^'$P'$/{print $4}'%" echo "进程开始运行的时刻:ps -aux| awk '$2~/^'$P'$/{print $9}'" echo "进程运行的时间:ps -aux| awk '$2~/^'$P'$/{print $10}'" echo "进程状态:ps -aux| awk '$2~/^'$P'$/{print $8}'" echo "进程虚拟内存:ps -aux| awk '$2~/^'$P'$/{print $5}'" echo "进程共享内存:ps -aux| awk '$2~/^'$P'$/{print $6}'" echo "--------------------------------"
图片

二、根据进程名过滤进程信息
会显示出该进程名包含的所有线程

! /bin/bash

Function: 根据输入的程序的名字过滤出所对应的PID,并显示出详细信息,如果有几个PID,则全部显示

read -p "请输入要查询的进程名:" NAME
N=ps -aux | grep $NAME | grep -v grep | wc -l ##统计进程总数
if [ $N -le 0 ];then
echo "该进程名没有运行!"
fi
i=1
while [ $N -gt 0 ]
do
echo "进程PID: ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $2}'"
echo "进程命令:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'"
echo "进程所属用户: ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $1}'"
echo "CPU占用率:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $3}'%"
echo "内存占用率:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $4}'%"
echo "进程开始运行的时刻:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $9}'"
echo "进程运行的时间: ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $11}'"
echo "进程状态:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $8}'"
echo "进程虚拟内存:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $5}'"
echo "进程共享内存:ps -aux | grep $NAME | grep -v grep | awk 'NR=='$i'{print $0}'| awk '{print $6}'"
echo "***************************************************************"
let N-- i++
done

图片

三、根据用户名查询该用户的相关信息

! /bin/bash

Function:根据用户名查询该用户的所有信息

read -p "请输入要查询的用户名:" A
echo "------------------------------"
n=cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}' | wc -l
if [ $n -eq 0 ];then
echo "该用户不存在"
echo "------------------------------"
else
echo "该用户的用户名:$A"
echo "该用户的UID:cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $3}'"
echo "该用户的组为:id $A | awk {'print $3'}"
echo "该用户的GID为:cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $4}'"
echo "该用户的家目录为:cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $6}'"
Login=cat /etc/passwd | awk -F: '$1~/^'$A'$/{print}'|awk -F: '{print $7}'
if [ $Login == "/bin/bash" ];then
echo "该用户有登录系统的权限!!"
echo "------------------------------"
elif [ $Login == "/sbin/nologin" ];then
echo "该用户没有登录系统的权限!!"
echo "------------------------------"
fi
fi

图片

四、加固系统的一些配置

! /bin/bash

Function:对账户的密码的一些加固

read -p "设置密码最多可多少天不修改:" A
read -p "设置密码修改之间最小的天数:" B
read -p "设置密码最短的长度:" C
read -p "设置密码失效前多少天通知用户:" D
sed -i '/^PASS_MAX_DAYS/c\PASS_MAX_DAYS '$A'' /etc/login.defs
sed -i '/^PASS_MIN_DAYS/c\PASS_MIN_DAYS '$B'' /etc/login.defs
sed -i '/^PASS_MIN_LEN/c\PASS_MIN_LEN '$C'' /etc/login.defs
sed -i '/^PASS_WARN_AGE/c\PASS_WARN_AGE '$D'' /etc/login.defs

echo "已对密码进行加固,新用户不得和旧密码相同,且新密码必须同时包含数字、小写字母,大写字母!!"
sed -i '/pam_pwquality.so/c\password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= difok=1 minlen=8 ucredit=-1 lcredit=-1 dcredit=-1' /etc/pam.d/system-auth

echo "已对密码进行加固,如果输入错误密码超过3次,则锁定账户!!"
n=cat /etc/pam.d/sshd | grep "auth required pam_tally2.so "|wc -l
if [ $n -eq 0 ];then
sed -i '/%PAM-1.0/a\auth required pam_tally2.so deny=3 unlock_time=150 even_deny_root root_unlock_time300' /etc/pam.d/sshd
fi

echo "已设置禁止root用户远程登录!!"
sed -i '/PermitRootLogin/c\PermitRootLogin no' /etc/ssh/sshd_config

read -p "设置历史命令保存条数:" E
read -p "设置账户自动注销时间:" F
sed -i '/^HISTSIZE/c\HISTSIZE='$E'' /etc/profile
sed -i '/^HISTSIZE/a\TMOUT='$F'' /etc/profile

echo "已设置只允许wheel组的用户可以使用su命令切换到root用户!"
sed -i '/pam_wheel.so use_uid/c\auth required pam_wheel.so use_uid ' /etc/pam.d/su
n=cat /etc/login.defs | grep SU_WHEEL_ONLY | wc -l
if [ $n -eq 0 ];then
echo SU_WHEEL_ONLY yes >> /etc/login.defs
fi

echo "即将对系统中的账户进行检查...."
echo "系统中有登录权限的用户有:"
awk -F: '($7"/bin/bash"){print $1}' /etc/passwd
echo "********************************************"
echo "系统中UID=0的用户有:"
awk -F: '($3
"0"){print $1}' /etc/passwd
echo ""
N=awk -F: '($2==""){print $1}' /etc/shadow|wc -l
echo "系统中空密码用户有:$N"
if [ $N -eq 0 ];then
echo "恭喜你,系统中无空密码用户!!"
echo "
"
else
i=1
while [ $N -gt 0 ]
do
None=awk -F: '($2==""){print $1}' /etc/shadow|awk 'NR=='$i'{print}'
echo "------------------------"
echo $None
echo "必须为空用户设置密码!!"
passwd $None
let N--
done
M=awk -F: '($2==""){print $1}' /etc/shadow|wc -l
if [ $M -eq 0 ];then
echo "恭喜,系统中已经没有空密码用户了!"
else
echo "系统中还存在空密码用户:$M"
fi
fi

echo "即将对系统中重要文件进行锁定,锁定后将无法添加删除用户和组"
read -p "警告:此脚本运行后将无法添加删除用户和组!!确定输入Y,取消输入N;Y/N:" i
case $i in
[Y,y])
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
echo "锁定成功!"
;;
[N,n])
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
echo "取消锁定成功!!"
;;
*)
echo "请输入Y/y or N/n"
esac

图片

  • END -

推荐阅读

原来懂Kubernetes,找工作这么吃香! 图片
企业主流全链路监控系统
阿里 Nacos 高可用集群部署
一位老架构师的忠告:别想着靠技术生存一辈子
神器 Nginx 的学习手册 ( 建议收藏 )
K8S 常用资源 YAML 详解
DevOps与CI/CD常见面试问题汇总
我会在Docker容器中抓包了!
19 个 K8S集群常见问题总结,建议收藏
运维高可用架构的 6 大常规方案
运维监控指标全方面总结
9 个实用 Shell 脚本,建议收藏!
详解 K8S Helm CI/CD发布流程
ES+Redis+MySQL,这套高可用架构设计太顶了!
一台服务器最大能支持多少条TCP连接?
K8S运维必知必会的 Kubectl 命令总结
16 张图硬核讲解 Kubernetes 网络
史上最全 Jenkins Pipeline流水线详解
主流监控系统 Prometheus 学习指南
搭建一套完整的企业级 K8s 集群(二进制方式)
40个 Nginx 常问面试题
Linux运维工程师 50个常见面试题

图片

点亮,服务器三年不宕机图片
阅读 4917

DevOps技术栈

写下你的留言
4条留言
复二代
四川
2023年8月4日
1
多来几个[偷笑]
DevOps技术栈
(作者)
2023年8月4日
1
可以可以。[呲牙]
SINCHAN
福建
2023年8月4日
确实挺实用的,第一个ps是不是应该变量保存?重复ps没必要
DevOps技术栈
(作者)
2023年8月5日
[强]所言极是
已无更多数据

人划线

posted @   LuckingSir  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示