IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> [轻松学会shell编程]-1、selinux介绍和配置 -> 正文阅读

[系统运维][轻松学会shell编程]-1、selinux介绍和配置

1、SElinux介绍

SElinux是一个linux系统里的安全方面的子系统,用来提升linux的整体的安全级别。是一种访问控制体系,进程只能访问那些在他的任务中所需要文件。

1.1、如何查看SElinux是否开启

[root@fttswlp ~]# getenforce
Disabled

1.1.1、临时修改

[root@fttswlp ~]# setenforce 0 # 临时关闭selinux
[root@fttswlp ~]# setenforce 1 # 临时启动selinux

1.1.2、永久修改

修改/etc/selinux/config或者/etc/sysconfig/selinux

[root@fttswlp ~]# cat /etc/sysconfig/selinux 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled  # 把这个改为disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

可以使用命令编辑文件修改selinux的模式:

[root@fttswlp ~]# cat /etc/selinux/config|grep ^SELINUX=
SELINUX=disabled
[root@fttswlp ~]# sed -i '/^SELINUX=/ s/disabled/hansome-fan/' /etc/selinux/config 
[root@fttswlp ~]# cat /etc/selinux/config|grep ^SELINUX=
SELINUX=hansome-fan  # 这个只是一个效果,最后还是要改为SElinux的三种模式

2、shell脚本练手

先来几个脚本练练手,熟悉shell编程分为哪几类

2.1、抽奖程序:从班级名单里随机抽取学生名字?

代码展示:

[root@fttswlp lucky_draw]# cat F_lucky_num2.0.sh 
#!/bin/bash
  
#不用反复使用命令执行的抽奖代码
 
#定义一个中奖的文件,用来记录中奖的人的信息,脚本第一次执行会清空里面的内容,要是没有这个文件就会新建这个文
 >luckylist.txt  || touch luckylist.txt 
 #生成一个用于减法的名单
cp $1 luckylist.txt 
 
for((i=1; i<=$(cat $1|wc -l)+1; i++))  # 加这个1,是为了后边能够输出这个"抽完了"
do
        lucky_total=$(cat luckylist.txt|wc -l)   #剩余名单总人数
        if (( $lucky_total == 0 )) ; then
                echo  "抽完了,开始新的一轮抽奖"
		rm -rf luckylist.txt
                break
        else
                lucky_p=$((RANDOM%($lucky_total)+1))  #抽中剩余名单里的人的号码 
                echo " 恭喜$(cat luckylist.txt|head -$lucky_p|tail -1)中奖!"
                sed -i "$lucky_p d" luckylist.txt   #在luckylist.txt中删除被选中的人
                read -p "请敲击任意键继续,按q退出:"  option
				if [[ $option == "q" || $option == "Q" ]]
				then
					break
				fi
        fi
done

使用的名单:

[root@fttswlp lucky_draw]# cat name1.txt 
范一
冯二
张三
李四
王五
罗六
刘七
曹八
陈九
全十

代码运行:

[root@fttswlp lucky_draw]# bash F_lucky_num2.0.sh name1.txt 
 恭喜冯二中奖!
请敲击任意键继续,按q退出:
 恭喜王五中奖!
请敲击任意键继续,按q退出:
 恭喜罗六中奖!
请敲击任意键继续,按q退出:
 恭喜陈九中奖!
请敲击任意键继续,按q退出:
 恭喜刘七中奖!
请敲击任意键继续,按q退出:
 恭喜曹八中奖!
请敲击任意键继续,按q退出:
 恭喜李四中奖!
请敲击任意键继续,按q退出:
 恭喜全十中奖!
请敲击任意键继续,按q退出:
 恭喜范一中奖!
请敲击任意键继续,按q退出:
 恭喜张三中奖!
请敲击任意键继续,按q退出:
抽完了,开始新的一轮抽奖

[root@fttswlp lucky_draw]# bash F_lucky_num2.0.sh name1.txt 
 恭喜全十中奖!
请敲击任意键继续,按q退出:
 恭喜张三中奖!
请敲击任意键继续,按q退出:q
[root@fttswlp lucky_draw]# 

2.2、监控类:内存的使用率超过70%给予提醒

代码展示:

>1.txt || touch 1.txt
free -m |tail -n +2|awk '{print $1,$2,$3}' >1.txt  # 将进程名、总共内存和已使用内容截取出来放入1.txt中
while read name total used
	do
	# 计算得到内存使用率情况,因为linux里边的默认的除是地板除
    # scale=5,取五位小数
	pro=$(printf "%.5f" `echo "scale=5;$used/$total"|bc`)
	if (( $( echo "$pro > 0.7"|bc ) == 1 ))
	then
		echo "$name,这台机器的内存使用为$pro,超过了70%,请注意"
	else
		echo "$name,这台机器的内存使用为$pro,没有超标"
	fi
done < 1.txt

代码测试:

[root@fttswlp menu]# bash hh
Mem:,这台机器的内存使用为0.10500,没有超标
Swap:,这台机器的内存使用为0.00000,没有超标

2.3、局域网扫描工具:知道哪些IP地址在使用,那哪些没有在使用

代码展示:

[root@fttswlp script]# cat scan_mac_ip.sh 
#!/bin/bash

# 清空日志文件
>used_ip.log
>unused_ip.log
>ip_mac.log

# ip地址和mac获取工具
for i in {1..254}
do
	
	# ping是测试网络是否畅通的工具
	( if ping -c 1 -w 1  192.168.28.$i  &>/dev/null;then
		echo "192.168.28.$i" >>used_ip.log
	else
		echo "19.168.28.$i" >>unused_ip.log
	fi )&
	# 这个脚本是并行计算
done
# wait是防止父进程先结束但是子进程没有结束,而导致父进程杀死没有执行完的子进程
wait
# 统计没有使用的ip地址的个数
num=$(cat unused_ip.log |wc -l)
echo "total ip:$num"  >>unused_ip.log

# 得到所有在使用的IP对应的mac
arp -a |grep -v "incomplete"|awk '{print $2,$4}'|tr -d "()" >ip_mac.log

运行结果:

[root@fttswlp script]# bash scan_mac_ip.sh 
[root@fttswlp script]# cat ip_mac.log 
192.168.29.1 00:50:56:c0:00:08
192.168.29.2 00:50:56:ee:e5:6d
[root@fttswlp script]# cat unused_ip.log 
....
19.168.28.177
19.168.28.234
19.168.28.226
19.168.28.223
total ip:253

3、shell

作用:解释器,介于系统内核与用户之间,负责解释命令行?

3.1、shell位置

3.2、shell解析流程

输入命令的执行过程:

?

3.2.1、eval命令

eval命令将会首先扫描命令进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量

[root@fttswlp ~]# myfile="cat test.txt"
[root@fttswlp ~]# echo 123456 >test.txt 
[root@fttswlp ~]# echo $myfile 
cat test.txt
[root@fttswlp ~]# eval $myfile # 第一次扫描进行了变量替换,第二次扫描执行了该字符串中包含的命令
123456

4、语言分类

强类型语言和弱类型语言、解释型和编译型、动态语言和静态语言

4.1、编程语言

? ? ? ? 编译型:c、go
? ? ? ? 解释型:shell,python,java ? ? ?不是解释型语言的话用xshell第一行不需要声明是什么解释器

preview

4.2、强类型语言和弱类型语言

定义:是否进行变量类型的自动转换?

? ? ? ? 强类型:不允许进行变量类型的自动转换,严格区分变量的类型,不自动转化
? ? ? ? 弱类型:背后会自动转换变量的类型

4.3、动态语言和静态语言

定义:就是在定义变量的时候,必须要声明变量的类型,就是静态的

c语言:弱类型,静态语言
python:强类型,动态语言
java:静态语言,强类型语言
?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 12:01:58  更:2022-05-05 12:04:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 18:52:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码