注:

1、该脚本是以centos7.4.1708做的

2、函数jia/jian是加权限/减权限

3、改过密码以后,下次使用新创建的用户登录时将提示更改密码,第一次要输入原始的密码,原始密码改脚本中定义的为123456

新密码必须为复杂的才能使用,比如AA7788flz_$5%

#!/bin/bash
jia(){
chattr +i /etc/passwd
chattr +i /etc/shadow
chattr +i /etc/group
chattr +i /etc/gshadow
chattr +i /etc/services
}
jian(){
chattr -i /etc/passwd
chattr -i /etc/shadow
chattr -i /etc/group
chattr -i /etc/gshadow
chattr -i /etc/services
}
PFDF_PLUS(){
OPOP700="ping userdel useradd vim tail netstat less head cat uname top"
OPOP500="ps"
for i in $OPOP700
do
k=`which $i`
chmod 755 $k
ls -al $k
done
for ii in $OPOP500
do
kk=`which $ii`
chmod 755 $kk
ls -al $kk
done
}
PFDF_LESS(){
OPOP700="ping userdel useradd vim tail netstat less head cat uname top"
OPOP500="ps"
for y in $OPOP700
do
p=`which $y`
chmod 700 $p
ls -al $p
done
for t in $OPOP500
do
pp=`which $t`
chmod 500 $pp
ls -al $pp
done
}
SEC(){
#注释启动画面内核信息
mv /etc/issue /etc/issuebak >/dev/null 2>&1
mv /etc/issue.net /etc/issue.netbak >/dev/null 2>&1
#禁ping
# sysctl net.ipv4.icmp_echo_ignore_all=1 > /dev/null 2>&1

#对TCP SYN Cookie的保护:(防止SYN Flood攻击)
echo "net.ipv4.tcp_syncookies=1">>/etc/sysctl.conf
sysctl -p

#检查新创建用户时密码的长度
SUM=`cat /etc/login.defs|grep ^"PASS_MIN_LEN" |awk -F ' ' '{print $2}'`
if [ $SUM == 5 ];then
sed -i 's/^PASS_MIN_LEN 5/PASS_MIN_LEN 11/' /etc/login.defs
SUM1=`cat /etc/login.defs|grep ^"PASS_MIN_LEN" |awk -F ' ' '{print $2}'`
if [ $SUM1 == 11 ];then
echo -e "\033[31m新创建用户时的密码默认为5个字符,已改为默认为11个字符(大小写 其他符号 数字组成)\033[0m"
  fi
fi
}

PFDF_PLUS > /dev/null 2>&1
read -p "您想删除用户还是添加用户(1:添加,2:删除,3:初始化安全): " xz
if [ $xz == 1 ];then
read -p "请输入你要添加的用户: " NAME
jian
useradd $NAME
if [ $? -eq 0 ];then
echo "123456"| passwd --stdin $NAME
if [ $? -eq 0 ];then
echo -e "原始密码为: \033[31m123456\033[0m"
else
echo "$NAME 用户的初始化密码未成功定义"
fi
fi
elif [ $xz == 2 ];then
read -p "请输入你要删除的用户: " NAME1
jian
userdel -r $NAME1
if [ $? -eq 0 ];then
echo "$NAME1 用户已删除"
else
echo "在删除 $NAME1 时出了点问题"
fi
jia
elif [ $xz == 3 ];then
SEC
else
echo "请输入数字1或者数字2..."
fi
jia
PFDF_LESS>/dev/null 2>&1

linux简单的安全防护的更多相关文章

  1. [原创]linux简单之美(一)

    原文链接:linux简单之美(一) 话说windows也有syscall,这是必须的.但是win的syscall可以直接call吗?可以是可以但是破费周折,搞成SDT之类的复杂概念.下面看看linux ...

  2. [原创]linux简单之美(二)

    原文链接:linux简单之美(二) 我们在前一章中看到了如何仅仅用syscall做一些简单的事,现在我们看能不能直接调用C标准库中的函数快速做一些"复杂"的事: section . ...

  3. [原创]linux简单之美(三)

    原文链接:linux简单之美(三) 在linux简单之美(二)中我们尝试使用了C库的函数完成功能,那么能不能用syscall方式来搞呢?显然可以! section .data ft db sectio ...

  4. Linux学习之十七-配置Linux简单的脚本文件自启动

    配置Linux简单的脚本文件自启动 在Linux中使用shell脚本解决一些问题会比单独执行多条命令要有效率,脚本文件规定命名以.sh结尾,最基本的规则就是其内容是命令,想要脚本文件开机自启动,就需要 ...

  5. 五大Linux简单命令解决系统性能问题

    五大Linux简单命令解决系统性能问题 2010-12-17 10:07 James Turnbull TechTarget中国 字号:T | T 管理Linux主机的性能看起来经常象是在变魔术一样. ...

  6. Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间

    Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...

  7. 一篇文章带你了解服务器操作系统——Linux简单入门

    一篇文章带你了解服务器操作系统--Linux简单入门 Linux作为服务器的常用操作系统,身为工作人员自然是要有所了解的 在本篇中我们会简单介绍Linux的特点,安装,相关指令使用以及内部程序的安装等 ...

  8. linux网络完全与防护

    7.1 网络封包联机进入主机的流程   7.1.1 封包进入主机的流程 1.经过防火墙的分析 iptables 主要功能是封包过滤 主要分析TCP/IP的封包表头来进行过滤的机制 分析的是OSI的第二 ...

  9. linux简单配置

    lsof -i lsof -i:211.判断apache查找httpd路径: ps aux | grep httpd 结果:  /usr/local/apache/bin/httpd /usr/loc ...

随机推荐

  1. 如何把string转换char*类型

    需要调用string头文件  ( #include<string> ) 用string里的函数c_str()可以把string转换为char* 例如 char * c_str2=str1. ...

  2. Netty网络聊天(一) 聊天室实战

    首发地址; Netty网络聊天(一) 聊天室实战 之前做过一个IM的项目,里面涉及了基本的聊天功能,所以注意这系列的文章不是练习,不含基础和逐步学习的部分,直接开始实战和思想引导,基础部分需要额外的去 ...

  3. C# Select

  4. window的Navigator 对象

    Navigator 对象包含有关浏览器的信息. Navigator 对象属性 document.write("浏览器的代码名:" + navigator.appCodeName + ...

  5. 【读书笔记】iOS-Game Kit

    名字虽然叫Game Kit,但是Game Kit并不是仅仅开发游戏用的,它为开发者提供了两个非常实用的功能:使用Bonjour通过蓝牙进行点对点的网络传输功能,以及应用内语音聊天功能.有意思的是,语音 ...

  6. 常见聚类算法——K均值、凝聚层次聚类和DBSCAN比较

    聚类分析就仅根据在数据中发现的描述对象及其关系的信息,将数据对象分组(簇).其目标是,组内的对象相互之间是相似的,而不同组中的对象是不同的.组内相似性越大,组间差别越大,聚类就越好. 先介绍下聚类的不 ...

  7. LVS主从部署配置和使用

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. LVS是L ...

  8. eclipse没有server选项解决方法

    eclipse是是一个开放源代码的.基于Java的可扩展开发平台.就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境. 它使用频率十分高,然而当使用它配置weblogic的时候,经常 ...

  9. 安卓开发_浅谈Fragment之ListFragment

    ListFragment,即Fragment的一个子类,当我们用的一个Fragment只需要一个listview视图的时候使用 该类有几个特点: 1.ListFragment 本身具只有一个ListV ...

  10. long数值 转换为时间

    项目中,服务器端经常给客户端开发人员传一个长整形的时间数据, 对于一个 长整形 1446801883000,可以明显的看出 是以毫秒为单位的,因为最后有三个零,如果没有连续3个零的话就要判断单位了 那 ...