##################################################
for循环结构
循环作用:让计算机,反复执行重复性的操作
for 变量 in 值列表
do
执行的动作
done
[root@server0 ~]# vim /root/10.sh
#!/bin/bash
for user in kenji natasha tom harry jack
do
useradd $user
echo $user 成功
done
[root@server0 ~]# /root/10.sh
#######################################################
案例5:编写一个批量添加用户脚本
在 server0 上创建 /root/batchusers 脚本
1)此脚本要求提供用户名列表文件作为参数
2)如果没有提供参数,此脚本应该给出
提示 Usage: /root/batchusers,退出并返回相应值
3)如果提供一个不存在的文件,此脚本应该给出
提示 Input file not found,退出并返回相应值
4)新用户的登录Shell为 /bin/false,无需设置密码
5)用户列表测试文件:
http://classroom/pub/materials/userlist
[root@server0 ~]# vim /root/batchusers
#!/bin/bash
if [ $# -eq 0 ];then #如果没有输入位置参数
echo 'Usage: /root/batchusers' >&2
exit 1
fi
if [ ! -f $1 ];then #如果文件不存在为真
echo 'Input file not found' >&2
exit 2
fi
for i in $(cat $1)
do
useradd -s /bin/false $i &> /dev/null
echo $i成功
done
######################################################
系统安全保护
SELinux概述
• Security-Enhanced Linux
– 美国NSA国家安全局主导开发,一套增强Linux系统安
全的强制访问控制体系
– 集成到Linux内核(2.6及以上)中运行
– RHEL7基于SELinux体系针对用户、进程、目录和文件
提供了预设的保护策略,以及管理工具
##################################################
• SELinux的运行模式
– enforcing(强制)、permissive(宽松)
– disabled(彻底禁用)
• 切换运行模式
– 临时切换:setenforce 1|0
– 固定配置:/etc/selinux/config 文件
– 如果修改SELinux状态为disabled(彻底禁用),需要修改/etc/selinux/config 文件并且重起
虚拟机server
[root@server0 ~]# getenforce #查看当前SELinux状态
Enforcing
[root@server0 ~]# setenforce 0 #设置SELinux状态
[root@server0 ~]# getenforce
Permissive
[root@server0 ~]# vim /etc/selinux/config
SELINUX=permissive
虚拟机desktop
[root@desktop0 ~]# getenforce
Enforcing
[root@desktop0 ~]# setenforce 0
[root@desktop0 ~]# getenforce
Permissive
[root@desktop0 ~]# vim /etc/selinux/config
SELINUX=permissive
#################################################
配置聚合连接(网卡绑定、链路聚合)
HSRP热备份路由协议: 备份网关设备
活跃路由器 备份路由器
虚拟路由器
网卡绑定: 备份网卡
网卡1 :eth1 网卡2 :eth2
虚拟网卡team
#####################################################
建立网卡绑定
虚拟机Server0上
1.建立team虚拟的网卡
参考 man teamd.conf —— '{"runner":{"name":"activebackup"}}'
nmcli connection add type team
con-name team0 ifname team0 autoconnect yes
config '{"runner": {"name": "activebackup"}}'
建立一个类型为team的网卡,配置文件名字为team0,
ifconfig命令显示的设备名为team0,每次开机自动启动
team运行的模式为热备份方式
vim /etc/sysconfig/network-scripts/ifcfg-team0
ifconfig team0
2.添加奴隶
nmcli connection add type team-slave con-name team0-1 ifname eth1 master team0
nmcli connection add type team-slave con-name team0-2 ifname eth2 master team0
添加一个类型为team-slave的成员,配置文件名team0-1,设备为eth1,添加到team0组队中
3.配置IP地址
nmcli connection modify team0
ipv4.method manual ipv4.addresses 192.168.1.1/24
connection.autoconnect yes
4.激活
[root@server0 ~]# nmcli connection up team0
[root@server0 ~]# nmcli connection up team0-1
[root@server0 ~]# nmcli connection up team0-2
[root@server0 ~]# ifconfig team0
5.查看team信息
[root@server0 ~]# teamdctl team0 state
6.配置错误,删除重做
[root@server0 ~]# nmcli connection delete team0
[root@server0 ~]# nmcli connection delete team0-1
[root@server0 ~]# nmcli connection delete team0-2
###################################################
配置IPV6地址
ip地址:唯一标识,网络一个节点的地址
ipv4: 32个二进制 点分4个10进制
ipv6: 128个二进制 以":"分隔8段,每段用16进制表示
案例3:配置IPv6地址
nmcli connection modify 'System eth0'
ipv6.method manual ipv6.addresses 2003:ac18::305/64 connection.autoconnect yes
nmcli connection up 'System eth0'
ping6 2003:ac18::305
#####################################################
配置用户环境(永久别名的定义)
alias别名设置
• 查看已设置的别名
– alias [别名名称]
• 定义新的别名
– alias 别名名称= '实际执行的命令行'
• 取消已设置的别名
– unalias [别名名称]
用户个性化配置文件
• 影响指定用户的 bash 解释环境
– ~/.bashrc,每次开启 bash 终端时生效
全局环境配置
• 影响所有用户的 bash 解释环境
– /etc/bashrc,每次开启 bash 终端时生效
[root@server0 ~]# vim /root/.bashrc #root用户自定义别名
alias hello='echo hi'
[root@server0 ~]# vim /etc/bashrc #所有用户自定义别名
alias myls='ls -ld'
[root@server0 ~]# vim /home/student/.bashrc #student用户
alias hi='echo hello'
开启一个新的终端
[root@server0 ~]# hello #执行成功
[root@server0 ~]# myls /root/ #执行成功
[root@server0 ~]# hi #执行失败
[root@server0 ~]# su - student
[student@server0 ~]$ hello #执行失败
[student@server0 ~]$ hi #执行成功
[student@server0 ~]$ myls /root/ #执行成功
[student@server0 ~]$ exit #回到root
####################################################
[root@server0 ~]# vim /etc/bashrc #所有用户自定义别名
alias qstat='/bin/ps -Ao pid,tt,user,fname,rsz'
####################################################
防火墙策略管理
一、Web服务器
Server服务端 :服务端软件
客户端:客户端软件,访问服务端资源
1.安装服务端软件httpd
[root@server0 ~]# yum -y install httpd
2.启动httpd服务,设置为开机自起
[root@server0 ~]# systemctl restart httpd
[root@server0 ~]# systemctl enable httpd
3.验证
[root@server0 ~]# firefox http://172.25.0.11
4.书写一个页面
默认网页文件路径:/var/www/html
默认网页文件名称:index.html
[root@server0 ~]# vim /var/www/html/index.html
<marquee><font color=red><h1>hahaxixihehelele
[root@server0 ~]# firefox http://172.25.0.11
#######################################################
二、FTP服务器
1.安装服务端软件vsftpd
[root@server0 ~]# yum -y install vsftpd
2.启动vsftpd服务,设置为开机自起
[root@server0 ~]# systemctl restart vsftpd
[root@server0 ~]# systemctl enable vsftpd
3.验证
[root@server0 ~]# firefox ftp://172.25.0.11
默认的共享路径:/var/ftp
#####################################################
• 系统服务:firewalld
• 管理工具:firewall-cmd、firewall-config
[root@server0 ~]# systemctl restart firewalld
作用:隔离, 严格控制入站请求,放行所有出站
• 根据所在的网络场所区分,预设保护规则集
– public:仅允许访问本机的sshd等少数几个服务
– trusted:允许任何访问
– block:拒绝任何来访请求
– drop:丢弃任何来访的数据包
防火墙判定的规则:
1.客户端数据中的源IP地址,查看所有区域中那个区域有该地址的规则,如果有则进入该区域
- 进入默认区域(管理员可以设置默认区域)
####################################################
虚拟机server0:
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --zone=public --list-all #查看区域规则
虚拟机desktop0:
ping -c 2 172.25.0.11 #可以通信
虚拟机server0:
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --set-default-zone=block #修改默认区域
firewall-cmd --get-default-zone
虚拟机desktop0:
ping -c 2 172.25.0.11 #不能通信,当可以收到回应
虚拟机server0:
firewall-cmd --set-default-zone=drop #修改默认区域
firewall-cmd --get-default-zone #查看默认区域
虚拟机desktop0:
ping -c 2 172.25.0.11 #不能通信,没有回应
######################################################
虚拟机server0:
firewall-cmd --set-default-zone=public
firewall-cmd --get-default-zone
firewall-cmd --zone=public --list-all #查看区域策略
firewall-cmd --zone=public --add-service=http #添加服务
虚拟机desktop0:
firefox http://172.25.0.11 #可以访问
firefox ftp://172.25.0.11 #不可以访问
虚拟机server0:
firewall-cmd --zone=public --list-all #查看区域策略
firewall-cmd --zone=public --add-service=ftp #添加服务
虚拟机desktop0:
firefox http://172.25.0.11 #可以访问
firefox ftp://172.25.0.11 #可以访问
#####################################################
– 永久配置(permanent)
虚拟机server0:
firewall-cmd --reload #重新加载防火墙配置
firewall-cmd --zone=public --list-all #查看防火器规则
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --zone=public --list-all #查看防火器规则
firewall-cmd --reload #重新加载防火墙配置
firewall-cmd --zone=public --list-all
#######################################################
实现本机的端口映射
• 本地应用的端口重定向(端口1 --> 端口2)
– 从客户机访问 端口1 的请求,自动映射到本机 端口2
– 比如,访问以下两个地址可以看到相同的页面:
http://172.25.0.11:5423/
http://172.25.0.11/
从客户机访问 ------》172.25.0.11:5423-----------》172.25.0.11:80
虚拟机Server0:
firewall-cmd --permanent --zone=public
--add-forward-port=port=5423:proto=tcp:toport=80
firewall-cmd --reload
firewall-cmd --zone=public --list-all
虚拟机Desktop0:
firefox http://172.25.0.11:5423
######################################################
本文转自sweak_h 51CTO博客,原文链接:http://blog.51cto.com/13478354/2046915,如需转载请自行联系原作者