UNIX诞生,1970年1月1日
• 发行版的名称/版本由发行方决定
– Red Hat Enterprise Linux 5/6/7
– Suse Linux Enterprise 12
– Debian Linux 7.8
– Ubuntu Linux 14.10/15.04
• 是一套完整Linux系统
– Linux内核 + 各种外围软件
• CentOS,社区企业操作系统
________________________________________
文件系统:在空间中,数据排列组合存储的规则
• 传统的MBR分区模式
– 1~4个主分区
– 0~3个主分区+1个扩展分区(n个逻辑分区)
• 注意事项
– MBR分区表只能记录4个主分区,编号范围1-4
– 当有必要使用4个以上分区时,需要建立扩展分区(占
主分区编号),扩展分区最多只能有1个
– 扩展分区作为一个中间性质的容器,从其中再划分出
的分区空间即为逻辑分区
________________________________________
• 典型的文件系统类型
– EXT4,第四代扩展文件系统,RHEL6系列默认
– XFS,高级日志文件系统,RHEL7系列默认
– SWAP,交换空间(虚拟内存)
________________________________________
分区表示
hd,表示IDE设备
sd,表示SCSI设备
________________________________________
完成RHEL7系统的安装过程后,第一次启动时会要求进行初始化设置。
当提示查看协议信息还是创建用户时,输入1并回车。
接下来输入2并回车,表示接受许可协议。
先后输入两次c表示继续,按回车后会进入到欢迎界面。
________________________________________
蓝色:目录
黑色:文本文件
红色:压缩包
绿色:可以执行的程序
________________________________________
输出信息提示: 未找到命令
原因:
1.命令有误
2.该命令没有安装
________________________________________
1.cat /etc/redhat-release查看系统版本
cat -n /etc/passwd 查看文本并附带行号
cat /proc/cpuinfo 列出CPU处理器信息
cat /proc/meminfo 检查内存大小、空闲情况
2.hostname 查看当前主机名
3.pwd 显示当前所在位置(pwd — Print Working Directory)
4.cd / 切换路径(cd — Change Directory)
5.ls /root /boot #查看/root 和 boot目录内容(List)
ls -l :以长格式显示(显示目录内容的详细属性)
6.uname -r 列出内核版本
7.ifconfig eth0 192.168.1.168 临时设置的IP地址
8.lscpu 列出CPU处理器信息
9.poweroff 关机
reboot 重启
10.查看文本文件内容
cat :小文件
less:大文件 按q退出
查看文本文件部分内容
head -3 /etc/passwd #显示头多少行
tail -4 /etc/passwd #显示尾多少行
从文本文件内容中查找,包含指定字符串的行:grep '字符串' 文本文件路径
grep 'root' /etc/passwd
Linux命令:
用来实现某一类功能的指令或程序;‘
命令的执行依赖于解释器(默认的解释器:/bin/bash)
在终端输入的命令通过解释器被解释成电脑识别的二进制,经内核处理信息最后发送给硬件;
________________________________________
mount挂载操作:用于访问光盘的内容;实际上挂载操作为访问光盘提供了一个文件夹,通过在电
脑上访问这个文件加就可以来读取光盘内容;
1.ls /dev/cdrom 光驱设备的快捷方式
mkdir ABC 创建ABC文件夹 当作访问点
mount /dev/cdrom /ABC 最后一步 提供设备的访问点
ls /ABC/Packages/ 直接查看光盘中的软件安装包
umount /ABC 删除ABC的访问点
________________________________________
重定向输出:将前面命令的输出结果,作为内容写入文本文件中
> :覆盖重定向 (它会覆盖文件中之前的内容)
>> :追加重定向 (不会覆盖文件之前的内容)
1.head -2 /etc/passwed > /opt/test.txt 把passwed中的前两段内容写入test文档中(这个text文本可以是之前不存在的,这个命令会自己建立一个test.txt
hostname >> /opt/test.txt 将电脑名也写入到text文本中,不会覆盖之前内容
echo 123456>> /opt/test.txt echo是一种命令,可以将它后面根的内容写入到指定文本中
> /opt/test.txt 清空文本文件内容
________________________________________
ls ---list
格式:ls [选项] 【目录或文件名】
常用的命令选项:
-l 以长格式显示文件信息
-A 显示隐藏文件
-d 显示目录本身(而不是内容)的属性
-h 提供易读的容量单位(K M 等)
________________________________________
命令的别名:简化复杂命令的输入
1.alias ABC=‘ls -h' 定义别名,就是通过输入ABC来实现ls -h的命令操作
2.alias 查看所有的有效别名
3.unalias 删除别名
________________________________________
使用通配符
* 任意多个任意字符
? 后面跟一个? 表示后面只能出现一个字符;如果跟两个??表示后面出现两个字符
ls /etc/*tab 列出在etc文件中以tab机诶为的所有文件
ls /boot/vm* 列出以vm开头的所有文件
ls /dev/tty? 列出以tty开头但后面只能有一个字节的文件
ls /dev/tty?? 列出以tty开头但后面只能有2个字节的文件
-【a-z】列出a到z范围内的所有文件(a到z的范围是连续的)
-{ a,c,e,w} 列出括号内所存在的文件
ls /dev/tty[3-8] 列出以tty结尾的后面一个字节是在3到8的所有文件
ls /dev/tty{1,3,5,7,9,ahah} 列出以tty结尾,后面跟的字节只能在括号范围内的字节
________________________________________
使用vim创建/修改文件
• vim文本编辑器
命令模式 输入模式(插入模式) 末行模式
i 键
命----------------------->输入模式 ( 按Esc 键进行返回命令模式)
令
模
式----------------------->末行模式 (按Esc 键进行返回命令模式)
: 键
在末行模式下 :wq 保存退出 :q! 不保存退出
vim /opt/5.txt 进出5.txt文档里面 首先安i键进入输入模式,然后就可以写入内容了;(可以直接用vim创建文件5.txt
________________________________________
删除:
rm 后面常跟-rf 递归删除(含目录)、强制删除
rm -rf /opt/1.txt 删除1.txt文件
rm -rf /opt/* 删除opt文件下的所有文件
________________________________________
mv 移动/改名
格式: mv [选项]... 原文件... 目标路径
mv /opt/1.txt /opt/nsd01 把1.txt文档移动到nsd01 文件夹里面
mv /opt/nsd01 /opt/test 把文件nsd01的名字重命名为test
________________________________________
cp — Copy 复制
格式:cp [选项]... 原文件... 目标路径
-r:递归,复制目录时必须有此选项
cp /etc/passed /opt / 把passed移动到opt文件夹下;
cp /boot/vm* /opt/ 把boot文件中的所有以vm开头的文件复制到
cp -r /boot/ /opt/ 把boot目录文件复制到opt下,复制目录文件必须加-r
\cp -r /boot/ /opt/ 把boot目录再次复制的到opt下,这个时候必须要加\ 临时取消别名
________________________________________
________________________________________
1.date 查看日期
date -s “2008-9-6 11:11:11“ 修改日期
2.bc 计算器
7%2 =1 查看7除以2的余数
3./root:管理员的家目录
home :存放所有普通用户的家目录
4.mkdir -p /vod/movie/cartoon 创建多级目录-p表示连父目录一起创建
设置的永久的别名:
vim /root/.bashrc 进如vim 编辑下进行修改添加参数
alias s='ssh -X [email protected]' 用s来代替输入ssh -X [email protected] 使用起来比较方便,但注意,作完修改后要重新打开一个终端,才能看到新别名的
________________________________________
软件包管理:
1.先挂载光盘:输入以下动作
mkdir /dvd
mount /dev/cdrom /dev 将光盘挂载在dvd文件上
ls /dvd/Packages 通过dvd挂载点来查看光盘中的软件安装包
2.RPM软件包管理:
~ 软件包的命名格式及解释说明如下:
vsftpd-3.0.2-10.el7.x86_64.rpm
软件名--版本----适用的系统--操作系统的框架
~RPM :Package Manager ---RPM安装包管理器:
rpm -q firefox 查询firefox软件是否安装
rpm -hiv /dvd/Packages/vsftpd/firefox 安装软件firefox(用这种方法安装软件包有局限性,如果所安装的软件包有依赖关系则安装起来比较麻烦,需要一个一个安装)
rpm -e firefox 卸载软件firefox
________________________________________
Yum软件包仓库管理,自动解决依赖关系:
实行这个功能时需要手动写入已经配置好的服务器网址,下面为列子
服务端:cla***oom.example.com
http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/ 软件包在服务器的存放路径
客户端:server0.example.com指定服务端的位置 /etc/yun.repos.d/*.repo (要确保这个本地路径里面没有repo结尾的文件,不然会影响服务端软件包的导入)因此需要先删除里面的文件
rm -rf /etc/yum.repos.d/* 删除本地服务端的所有文件
vim /etc/yum.repos.d/nsd.repo 编辑服务端于服务器之间的关系(nsd.repo是自己手动命名的文件)配置内容如下:
【nsd】 仓库标示
name=nsd 仓库描述信息
baseurl=http://cla***oom.example.com/content/rhel7.0/x86_64/dvd/ (服务器软件包存放地址)
enable=1 是否启用文件(0表示不启用,1表示启用)
gpgcheck=0 是否检测软件包的签名信息(这个一般不要检测)
---------------------------------------------------------------------------------------------------------------------
yum repolist 列出仓库信息 (没有报错即可)
________________________________________
Yum仓库的使用,(我们已经建立好了仓库,现在就可以直接使用下面命令来直接安装软件包)
yum -y install http 安装http软件包(-y 表示的是同意安装)
yum clean all 清除yum仓库的缓存 (有时候使用三个月左右需要
清楚服务器里面的缓存日志)
________________________________________
升级内核:(也是需要从远方服务器端下载内核软件包,然后在本地电脑来进行安装升级的)
wget http://cla***oom.example.com/content/rhel7.0/x86_64/errata/Packages/kernel-3.10.0-123.1.2.el7.x86_64.rpm wget后面跟一个远程软件包表示在本地下载内核安装包(次安装包默认下载存放的路径为当前所在路径
rpm -hiv kernel-3.10.0-123.1.2.el7.x86_64.rpm 安装内核 (安装完成后需要重启电脑)
reboot 重启电脑
________________________________________
根据字符串模式提取文本行
– grep [选项] '匹配字符串' 文本文件...
• 常用命令选项
– -v,取反匹配
– -i,忽略大小写
grep 'root' /etc/passwd 获取passwed中所有包含root的文件
grep -v ‘root’ /etc/passwd 获取passwd中除了root以外的所有文件
grep -i 'ROOT' /etc/passwd -i 表示不用区分大小写
grep 'seismic' /usr/share/dict/words > /root/wordlist 把seismic文件写入到wordlist文件中
________________________________________
– ^word 以字符串word开头
– word$ 以字符串word结尾
grep '^root' /etc/passwd 在passwd文档中找出以root开头的文件
grep 'bash$' /etc/passwd 在passwd文档中找出以bash结尾的文件
grep -v '^$' /etc/default/useradd 这个命令的意思是读取文件是筛选除来空白行,只显示有文字的行段
________________________________________
• 根据预设的条件递归查找对应的文件
– [目录] [条件1]
--常用条件表示:
-type 类型(f 文件 , d目录 , l快捷方式)
- name “文档名称”
- user 用户名
- size +/-文件大小(k,M,G
find /etc/ -name "*.conf" 在etc目录下,查找所有以.conf结尾的文档
find /etc/ -type d 在etc目录下,查找所有的目录文件
find /boot -type l 在etc目录下,查找所有的快捷方式
find /boot -type f 在etc目录下,查找所有的文件
find /root/ -name "nsd" -type f 在root文件中查找包含nsd的所有内容中的文件
find /boot/ -size +20M 在boot目录下,查找大于20M的文件
find /boot/ -size -20M 在boot目录下,查找小于20M的文件
find /home -user zhangsan 在home下查找张三的用户信息
find /boot/ -size +30M -exec cp {} /opt \; 在boot文件下查找大于30M的文件,并且复制到opt目录下面
find / -user lisi -type f -exec cp {} /root/findfiles \;
________________________________________
配置网络(永久配置)
一.配置永久主机名
echo ling > /etc/hostname 写入ling作为主机名
cat /etc/hostname 查看配置文件中的主机名
二.永久修改IP地址、子网掩码、网关地址
电脑网卡配置文件存放路径:/etc/sysconfig/network-scripts/ifcfg-eth0
1.显示当前网络接口(网卡)信息:
nmcli connection show
2.利用命令配置:(以下命令中的ip地址改变就可以了)
nmcli connection modify "System eth0" ipv4.method manual ipv4.addresses "172.25.0.11/24 172.25.0.254" ipv4.dns 172.25.254.254 connection.autoconnect yes
3.查看网卡配置文件内容
cat /etc/sysconfig/network-scripts/ifcfg-eth0
4.激活网卡配置
nmcli connection up 'System eth0'
三、永久修改DNS服务器地址 /etc/resolv.conf
echo nameserver 172.25.254.254 > /etc/resolv.conf 修改DNS服务器
cat /etc/resolv.conf 查看DNS服务器地址
nslookup server0.example.com 测试解析DNS
________________________________________
route -n 查看网关地址
管理用户和组:
用户账户的作用:登陆操作系统;访问控制(不同的用户具备不同的权限)
组帐号的作用:方便对用户的管理
唯一的标示:UID;GID
管理员的UID: 0
普通用户UID: RHEL7从1000开始;RHEL6从500开始
组的分类:附加组(从属组;公共组) ; 基本组(私有组)
________________________________________
添加用户:
用户的基本信息存放在 /etc/passwd 文件
head -1 /etc/passwd 查看用户信息第一行
root:x:0:0:root:/root:/bin/bash 用户信息的基本格式,以下为格式的解读:
用户名:密码占位符:UID:GID:用户的信息描述:家目录:解释器程序 (用户的信息描述一般没有)
-------------------------------------------------------------------------------------------------
--使用useradd 命令:
常用的命令选项:
-u 用户UID
-d 家目录路径
-s 登陆Shell
-g 基本组
-G 附加组
useradd nsd01 添加用户nsd01
id nsd01 查看用户nsd01信息 (例如:uid=1003(lisi) gid=1004(lisi) 组=1004(lisi) )
grep 'nsd01' /etc/passwd 在文件中查看用户的信息(例如:lisi:x:1003:1004::/home/lisi:/bin/bash)
useradd -u 1200 nsd02 修改用户nsd02的UID值
useradd -d /opt/abc nsd02 修改用户nsd02的家目录路径
useradd -s /sbin/nologin nsd02 阻止用户登陆系统(sbin/nologin 是一条命令)
groupadd study 创建study组
useradd -g study nsd02 把用户指定到study组里面
useradd -G study nsd02 指定附加组
________________________________________
管道操作:将前面命令的输出结果,传输给后面命令,作为后面命令的参数
head -12 /etc/passwd | tail -5 读取passwd中的前12行,因为有管道的存在,又读取已经读的12行中的最后五行;
cat -n /etc/passwd | head -12 | tail -5 显示/etc/passwd/文件8-12行内容
________________________________________
• 使用 passwd 命令
1.交互式设置密码(设置的时候会有一问一答的存在)
passwd nsd01 为用户nsd01设置密码
2.非交互式设置密码(设置时不存在对话)
echo 123 | passwd --stdin nsd01 设置用户nsd01的密码为123
用户的密码信息存放在 /etc/shadow 文件中
________________________________________
• 使用 usermod 命令(它就是把所有选项放一起一起来修改用户的属性)
– usermod [选项]... 用户名
常用命令选项
-u 用户id
-d 家目录路径
-s 登陆Shell
-g 基本组
-G 附加组
usermod -u 1600 -d /opt/test -G study -s /sbin/nologin nsd12
________________________________________
删除用户;
• 使用 userdel 命令
– userdel [-r] 用户名
userdel nsd01 删除nsd01用户
userdel -r nsd02 也是用来删除用户的命令
________________________________________
组管理
一.添加组
组基本信息存放在 /etc/group 文件中
grep 'study' /etc/group 查看study组的信息(study组是已经创建好的),下面为组的格式:
组的基本格式:study:x:1600:nsd01 (nsd01是一个已经添到组里面的用户)
格式的介绍: 组名:组的密码占位符:GID:组成员列表
------------------------------------------------------------------------------------------
• 使用 groupadd 命令(这个命令是用来添加组的,后面直接添组名)
– groupadd [-g 组ID] 组名
groupadd study 创建study组
• 使用 gpasswd 命令
– gpasswd -a 用户名 组名 (就是将用户添加到一个组里面去)
– gpasswd -d 用户名 组名 (就是将用户从组中删除)
gpasswd -a zhangsan study 把张三添加到study的组里去
gpasswd -d zhangsan study 把张三从study组中删除掉
二.删除组
• 使用 groupdel 命令
– groupdel 组名(删除已经创建的组很简单,groupdel 后面直接跟组名,就可以删掉)
groupdel study 删除study组
________________________________________
tar 归档及压缩
~归档的含义:将许多零散的文件整理为一个文件,文件的总大小基本不变;
~压缩的含义:按照某种算法减小文件所占用的空间大小;恢复时按照对应的逆向算法解压;
压缩的工具方法有三种,每种方法所压缩出来的文件类型也不一样,以下为三种方法,和对应的文件格式:
gzip ------------> .gz
bzip2------------> .bz2
xz--------------> .xz
----------------------------------------------------------------------------------------------------------
tar 集成备份工具:
-c 创建归档
-x 释放归档
-f 指定归档文件名称
-z , j , J 调用.gz , .bz2 , .xz 格式的工具进行处理
-t 显示归档的文件清单
-P(大写) 保存归档内文件的绝对路径 (绝对路径就是,在以后释放里面的文件时,文件会按照之前归档时的文件路径释放,可能会导致释放后与当前文件覆盖,造成数据的丢失)
-C 指定tar包的释放位置
-------------------------------------------------------------------------------------
• 使用 tar -c ... 命令
tar -zcf 加备份文件.tar.gz 加被备份的文档
tar -jcf 备份文件.tar.bz2 被备份的文档
tar -Jcf 备份文件.tar.xz 备份的文档
tar -zcf /opt/file.tar.gz /boot/ /home/ 把boot和home的文件一起创建压缩包,压缩包的名字是自己命名的,并且自己手动选择压缩包的存放路径
tar -jcf /opt/file.tar.bz2 /boot/ /home/ 作用同上只是用的压缩工具不一样
tar -Jcf /opt/file.tar.xz /boot/ /home/ 同上
tar -xf /opt/file.tar.gz -C /mnt/ 把opt下的压缩包file.tar.gz 解压释放到mnt下
----------------------------------------------------------------------------------------------------------
下面举个实验,主要是研究P 绝对路径的使用情况
echo 123456 > /opt/1.txt 在1.txt中写入123456
cat /opt/1.txt 查看1.txt的内容
tar -zcPf /mnt/nsd.tar.gz /opt/1.txt 以绝对路径创建1.txt的压缩包nsd.tar.gz
tar -tf /mnt/nsd.tar.gz 显示压缩文件内的文件清单
echo hahaxixi > /opt/1.txt 更改之前创建的1.txt文件内容
cat /opt/1.txt 查看txt文件,内容已经变为hahaxixi
tar -xPf /mnt/nsd.tar.gz 以绝对路径释放之前的压缩包
cat /opt/1.txt 查看txt文件内容,结果发现内容被刚释放的压缩包中的txt覆盖了
结论:我们以后在作文件压缩时,最好以绝对路径压缩文件,因为,到释放压缩包的时候
可以选择两种释放方法,一种以绝对路径释放(-P),一种以相对路径释放;尽管当时压缩文件
用的是绝对路径来压缩的,但只要你释放压缩文件时不用-P的绝对路径来释放文件的话,释放后
的文件依然是相对路径;
________________________________________
NTP时间同步:就是有一台时间服务器,为其他客户电脑提供标准时间的协议
• Network Time Protocol
NTP服务器为客户机提供标准时间,NTP客户机需要与NPT服务器保持沟通
实现这个功能需要有以下条件才可以进行:
1.服务端:提供相应功能的程序,会有一个NPT服务器:例如cla***om.example.com
2.客户端:访问服务器的程序
客户机:
-------------------------------------------------------------------------------------------------------------
以下为实行的具体方法操作:
1.安装客户端程序:chrony
rpm -q chrony
2.配置chrony指定的服务端位置,修改配置文件
vim /etc/chrony.conf 进入文件编辑下,添加服务器信息如下:
server cla***oom.example.com iburst
3.重起客户端服务chronyd,命令如下:
systemctl restart chronyd 重启服务;
systemctl enable chronyd 设置开机自动启用功能
4.验证时间同步:
date 显示时间
date -s “1996-1-2“ 修改时间为1996-1-2
systemctl restart chronyd 重启服务
date 查看时间是否有重新校准
________________________________________
cron 任务概述:
用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务;
需要安装的软件包:cronie 和 crontabs
系统服务:crond
生成的日志文件:/var/log/crond
时间 任务
分 时 日 月 周 命令或脚本程序
* * * * *
0 22 * * *
0 8 * * 1-5
下面为一个案例:
要求:每分钟记录当前的系统时间,写入到/opt/time.txt
• 使用 crontab 命令
– 编辑:crontab -e [-u 用户名]
– 查看:crontab -l [-u 用户名]
– 清除:crontab -r [-u 用户名]
date >> /opt/time.txt 查看系统时间,重定向写入到time.txt文本中;
crontab -e -u root 进入计划任务配置文件下,编辑内容,需要输入以下动作:
*/1 * * * * date >> /opt/time.txt (每分钟写入时间)
watch -n 1 cat /opt/time.txt 每1s中查看time。txt文件内容,来确定上述任务是否执行了;
---------------------------------------------------------------------------------------
备注工具:which : 这个命令是用来查找命令所对应的程序文件
周期性计划任务,命令写对应的程序文件。提高可靠性
vim: 命令模式 按 yy 复制光标所在的一行
p 粘贴
dd 删除光标所在的一行
基本权限:
一. 访问方式:
1.读取:允许查看内容--read r (能够 ls 浏览此目录内容)
2.写入:允许修改内容--write w (能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
3.可执行:语序运行和切换--execut x (能够 cd 切换到此目录)
二. 权限适用对象(归属)
1.所有者:拥有此文件/目录的用户-user u
2.所属组:拥有此文件/目录的组 group g
3.其他用户:除所有者,所属组以外的用户 other o
------------------------------------------------------------------------------
~使用ls -l 命令
ls -ld 显示文件或目录的详细属性
显示的内容以-开头的为:文本文件
d开头的为:目录
l 开头的为:快捷方式
下面举例说明:
drwxr-xr-x. 3 root root 15 7月 11 2014 /opt 这个是用命令查看的opt属性
d表示:此文加为目录文件
rwx为root所有者所具备的权限
r-x为所属组所具有的权限
最后的r-x为其他用户所具有的权限
---------------------------------------------------------------------------------
~设置基本权限:
使用chmod 命令(此命令是用来给权限对象添加或删除某些权限)
chmod g+w nsd01 给nsd01文件的所属组新添加一个w写入的权限
chmod u-w /nsd01 给nsd01的所有者去掉一个写入的权限
chmod o=rwx /nsd01 给nsd01的其他用户重新写入一些权限,rwx
chmod u=wrx,g=rx,o=--- /nsd01 给nsd01的所有者写入wrx权限,所属组rx权限,其他用户无权限,他们之间用逗号隔开
----------------------------------------------------------------------------------------------------------
以下为权限应用的案例:
以root用户新建/nsddir/目录,在此目录下新建readme.txt文件,并进一步完成下列操作
1)使用户zhangsan能够在此目录下创建子目录 切换用户 su - zhangsan
chmod o+w /nsddir/
2)使用户zhangsan不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户zhangsan能够修改readme.txt文件
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x---
chmod -R u=rwx,g=rx,o=--- /nsddir/
________________________________________
~使用chown 命令
先创建一个文件夹 mkdir /nsd33
查看文件属性:ls -ld /nsd33 为:
drwxr-xr-x. 2 root root 6 11月 24 20:30 /nsd33 他的所有者和所属组都是root
通过chown命令来实现修改他的所有者和所属组,命令如下:
chown zhangsan:tarena /nsd33 这个就是把nsd33的所有者改为zhangsan,所属组改为tarena
通过chown也可以实现只修改所有者或者所属组,命令如下:
chown lisi /nsd33 只修改了所有者
chown :root /nsd33 只修改了所属组
________________________________________
附加权限(特殊权限)
~ Set GID
• 附加在属组的 x 位上
– 属组的权限标识会变为 s
– 适用于目录,Set GID可以使目录下新增的文档自动设
置与父目录相同的属组(继承)
mkdir /nsd06 创建一个06的文件机
ls -ld /nsd06 查看06 文件属性,如下:
drwxr-xr-x. 2 root root 6 11月 25 08:38 /nsd06 这个为查看到的文件属性
chown :tarena /nsd06 修改文件的所属组,由root改为tarena
mkdir /nsd06/abc 在06的文件下再创建一个文件adc
ls -ld /nsd06/abc 查看adc01的属性,如下:
drwxr-xr-x. 2 root root 6 11月 25 08:40 /nsd06/abc 发现所建的文件属性没有继承父母的属性
chmod g+s /nsd06/ 这个时候我们继续在原来的06文加上添加一个+s的附加权限
ls -ld /nsd06/查看文件属性,如下;
drwxr-sr-x. 3 root tarena 16 11月 25 08:40 /nsd06 这里有一个变化,所属组的x为变成了s
mkdir /nsd06/abc02 再在06文件下创建一个adc2的文件
ls -ld /nsd06/abc02查看属性如下:
drwxr-sr-x. 2 root tarena 6 11月 25 08:43 /nsd06/abc2,这个时候发现abc2的文件的所属组就继承了06的属性;
________________________________________
ACL策略权限
什么情况下需要使用ACL策略权限?比如在企业里有一个人员信息存放文件,这个文件只能给文员部的人wrx权限的,其他人员一律无任何权限,但这个时候老板说他 想只访问查看这个文件夹;这个时候我们第一不能把老板添加到文员组里面,因为老板不能去修改数据,第二,不能去修改其他用户的权限,因为一旦修改了其他人 都能访问了,所以这个时候就要使用ACL策略权限,给老板自己单独一个权限;
~acl访问策略:能够对个别用户个别组设置独立的权限
大多数挂载的EXT3/4、XFS文件系统默认已支持
-------------------------------------------------------------------------------------------------------------
• 使用 getfacl、setfacl 命令
– getfacl 文档... #查看acl策略
– setfacl -m u:用户名:权限类别 文档... 为用户添加策略
– setfacl -m g:组名:权限类别 文档... 为组添加策率
– setfacl -b 文档... #清除所有的ACL策略
– setfacl -x 文档... #清除指定的ACL策略
getfacl /nsd 查看nsd文件的acl策略权限;
setfacl -m u:zhangsan:rx /nsd10 设置acl策略,给张三添加一个访问读取权限
setfacl -x u:kenji /nsd10 删除keji的acl策略
setfacl -b /nsd10 删除nsd10 的全部acl策略
________________________________________
使用LDAP认证
什么是LDAP?
• 轻量级目录访问协议
– Lightweight Directory Access Protocol
– 由服务器来集中存储并向客户端提供的信息,存储方
式类似于DNS分层结构
– 提供的信息包括:用户名、密码、通信录、主机名映
射记录、......
本地用户:本地/etc/passwd
网络用户的实现: LDAP服务器
服务器:cla***oom.example.com
以下为具体操作:
客户端:
1.安装一个客户端软件sssd 与LDAP服务器沟通的软件
yum -y install sssd 安装软件命令
2.安装图形软件authconfig-gtk 配置sssd工具
yum -y install authconfig-gtk
3.运行图形软件authconfig-gtk 进行配置
[root@server0 /]# authconfig-gtk 以下为配置信息:
用户账户数据库:LDAP
LDAP搜索基础DN:dc=example,dc=com
LDAP服务器: cla***oom.example.com
钩选:用TLS加密连接
指定证书加密:
http://cla***oom.example.com/pub/example-ca.crt
认证方法:LDAP密码
4.重起客户端sssd服务
systemctl restart sssd 重启sssd服务
systemctl enable sssd 设置开机自启
5.验证:LDAP服务器上用户可以在本地识别
二、家目录漫游,在本地访问服务器上的资源
服务端:
cla***oom.example.com 作了NFS共享文件夹,共享了所有的家目录
客户端:访问共享
[root@server0 ~]# showmount -e cla***oom.example.com
Export list for cla***oom.example.com:
/home/guests 172.25.0.0/255.255.0.0
挂载共享目录,提供访问点
mount cla***oom:/home/guests/ /home/guests
磁盘管理:
磁道:track
扇区:sector 每个扇区512个字节
磁头:head
柱面:cylinde
------------------------------------------------------------------------------
________________________________________
MBR/msdos 分区模式:
#1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区)
#最大支持容量为2.2TB的磁盘
#扩展分区不能格式化
时别硬盘---->分区规划------>格式化---->挂载使用
毛胚楼层----》打隔断------》装修-----》入住
------------------------------------------------------------------------------------
#查看磁盘~lsblk
[root@server0 ~]# lsblk 查看硬盘
#修改硬盘的分区表
使用fdisk + 硬件设备 命令
常用的交互指令:
m 列出指令帮助
p 查看现有的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
fdisk /dev/vdb (进入分区编辑界面)
在分区时,当出现last时对话,直接输入要分区的容量+20G
分区完成后需要w保存并退出
ls /dev/vdb[1-2] 查看目录中的分区
------------------------------------------------------------------------
格式化文件系统(当分区完成后,需要对分区进行格式化)
使用mkfs + 工具 命令来实现 (以下四种为格式化的四种格式)
mkfs.ext3 分区设备路径
mkfs.ext4 分区设备路径
mkfs.xfs 分区设备路径
mkfs.vfat 分区设备路径
mkfs.ext4 /dev/vdb2 格式化vdb2的分区
mkfs.xfs /dev/vdb1
blkid /dev/vdb1 查看分区文件系统
---------------------------------------------------------------
挂载使用
mount /dev/vdb1 /part1
df -h 查看正在挂载使用的设备信息
-----------------------------------------------------------------
缓解根分区的压力
[root@server0 ~]# find -size 查找较大的目录有哪些
[root@server0 ~]# 还分新的分区 /dev/vdc1
[root@server0 ~]# mount /dev/vdc1 /mnt
[root@server0 ~]# cp -r /home/* /mnt
[root@server0 ~]# rm -rf /home/*
[root@server0 ~]# umount /mnt
[root@server0 ~]# mount /dev/vdc1 /home
-------------------------------------------------------------------
将虚拟机server重起
--------------------------------------------------------------------
开机自动挂载,修改配置文件 /etc/fstab
• 配置文件 /etc/fstab 的记录格式
设备路径 挂载点 类型 参数 备份标记 检测顺序
/dev/vdb1 /part1 xfs defaults 0 0
验证:
[root@server0 ~]# mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
[root@server0 ~]# df -h
------------------------------------------------------------------------------------
综合分区练习
[root@server0 ~]# fdisk /dev/vdb
p 查看分区表
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +2G
p 查看分区表
n 创建新的分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+2G
d 删除分区
w 保存并退出
[root@server0 ~]# partprobe #刷新分区表
[root@server0 ~]# ls /dev/vdb[1-5]
[root@server0 ~]# lsblk
-----------------------------------------------------------------------------------
总结:
1.查看硬盘 lsblk
2.划分分区 fdisk
3.刷新分区表 partprobe
4.格式化文件系统 mkfs.xfs mkfs.ext4
5.挂载 mount
6.开机自动挂载 /etc/fstab
-------------------------------------------------------------------------------------
LVM逻辑卷的使用
1.整合分散的空间
2.实现分区的动态扩大与缩减
在“分区 --> 格式化”中间增加的一个逻辑层
– 零散空闲存储 ---- 整合的虚拟磁盘 ---- 虚拟的分区----- 格式化------ 挂载
砖--------->房子-------->打隔断-------->装修---------->入住
物理卷
Physical Volume
卷组
Volume Group
逻辑卷
Logical Volume
将众多的物理卷,组成卷组,再从卷组中划分逻辑卷
######################################################
图形添加全新的硬盘80G
[root@server0 ~]# lsblk
#####################################################
综合分区
将/dev/vdc划分6个分区,3个主分区,一个扩展分区,2个逻辑分区
[root@server0 ~]# fdisk /dev/vdc
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
n 创建新的分区----->回车----->回车---->回车----->在last结束时 +10G
p 查看分区表
n 创建新的分区
----->回车---->起始回车----->结束回车 将所有空间给扩展分区
p 查看分区表
n 创建新的分区----->起始回车------>结束+10G
n 创建新的分区----->起始回车------>结束+10G
w 保存并退出
[root@server0 ~]# partprobe #刷新分区表
[root@server0 ~]# ls /dev/vdc[1-6]
[root@server0 ~]# lsblk
[root@server0 ~]# ls /dev/vdc*
######################################################
新建逻辑卷
1.新建卷组
命令格式:vgcreate 卷组名称 分区路径
[root@server0 ~]# vgcreate myvg /dev/vdc1 /dev/vdc2
[root@server0 ~]# vgs
[root@server0 ~]# pvs
2.创建逻辑卷
命令格式:lvcreate -n 逻辑卷名称 -L 大小 基于卷组
[root@server0 ~]# lvcreate -n mylv -L 16G myvg
[root@server0 ~]# lvs
3.使用LVM逻辑卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv
[root@server0 ~]# mkdir /lvm
[root@server0 ~]# tail -1 /etc/fstab
/dev/myvg/mylv /lvm ext4 defaults 0 0
[root@server0 ~]# mount -a
[root@server0 ~]# df -h
#####################################################
LVM逻辑卷的扩展
一、卷组有足够的剩余空间
1.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 19G /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
2.扩展文件系统的大小
扩展ext4文件系统: resize2fs
扩展xfs文件系统: xfs_growfs
[root@server0 ~]# df -h | tail -1
[root@server0 ~]# blkid /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv
[root@server0 ~]# df -h | tail -1
二、卷组没有足够的剩余空间
1.扩展卷组空间
[root@server0 ~]# vgextend myvg /dev/vdc3
[root@server0 ~]# vgs
2.直接扩展逻辑卷的空间
[root@server0 ~]# vgs
[root@server0 ~]# lvextend -L 25G /dev/myvg/mylv
[root@server0 ~]# lvs
[root@server0 ~]# vgs
3.扩展文件系统的大小
[root@server0 ~]# df -h | tail -1
[root@server0 ~]# resize2fs /dev/myvg/mylv
[root@server0 ~]# df -h | tail -1
######################################################
了解:
缩减:不要做, 先缩减文件系统的大小,在缩减空间大小
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# umount /lvm
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
resize2fs 1.42.9 (28-Dec-2013)
请先运行 'e2fsck -f /dev/myvg/mylv'.
[root@server0 ~]# e2fsck -f /dev/myvg/mylv
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
[root@server0 ~]# lvreduce -L 10G /dev/myvg/mylv
WARNING: Reducing active logical volume to 10.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
#####################################################
• 创建卷组的时候设置PE大小
– vgcreate -s PE大小 卷组名 空闲分区...
– vgchange -s PE大小 卷组名
PE:卷组划分空间的单位 4M
[root@server0 ~]# vgdisplay myvg
[root@server0 ~]# vgchange -s 2M myvg
[root@server0 ~]# vgdisplay myvg
• 创建逻辑卷的时候指定PE个数
– lvcreate -l PE个数 -n 逻辑卷名 卷组名
[root@server0 ~]# lvcreate -l 102 -n lvtest02 myvg
Logical volume "lvtest02" created
[root@server0 ~]# lvs
#####################################################
交换分区(虚拟内存)
• 相当于虚拟内存,
– 当物理内存不够用时,使用磁盘空间来模拟内存
– 在一定程度上缓解内存不足的问题
[root@server0 ~]# swapon -s #查看交换空间,组成 成员信息
[root@server0 ~]# mkswap /dev/vdc5 #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc5 #启用交换分区
[root@server0 ~]# swapon -s
[root@server0 ~]# mkswap /dev/vdc6 #格式化,交换文件系统
[root@server0 ~]# swapon /dev/vdc6 #启用交换分区
[root@server0 ~]# swapon -s
#####################################################
开机自动启用交换分区 /etc/fstab
[root@server0 ~]# vim /etc/fstab
[root@server0 ~]# tail -2 /etc/fstab
/dev/vdc5 swap swap defaults 0 0
/dev/vdc6 swap swap defaults 0 0
[root@server0 ~]# swapoff /dev/vdc[5-6] #停用交换分区
[root@server0 ~]# swapon -s
[root@server0 ~]# swapon -a #检测/etc/fstab交换分区
[root@server0 ~]# swapon -s
########################################
###############################################
Shell脚本
• 脚本: 可以执行文件,实现某种功能
• 提前设计可执行语句,用来完成特定任务的文件(命令的堆积)
规范Shell脚本的一般组成
• #! 环境声明(Sha-Bang) 以下所有代码,用那个程序解释
• # 注释文本
• 可执行代码
[root@server0 ~]# cat /root/hello.sh
#!/bin/bash
echo hello world
hostname
uname -r
ifconfig | head -2 | tail -1
cat /etc/redhat-release
[root@server0 ~]# /root/hello.sh
####################################################
重定向输出
> : 只收集正确信息的重定向
2>: 只收集错误信息的重定向
&>: 收集正确与错误信息的重定向
[root@server0 ~]# echo 123 > /opt/1.txt
[root@server0 ~]# cat /opt/1.txt
[root@server0 ~]# cat /etc
[root@server0 ~]# cat /opt/1.txt /etc/
[root@server0 ~]# cat /opt/1.txt /etc/ > /mnt/a.txt
[root@server0 ~]# cat /mnt/a.txt
[root@server0 ~]# cat /opt/1.txt /etc/ 2> /mnt/a.txt
[root@server0 ~]# cat /mnt/a.txt
[root@server0 ~]# cat /opt/1.txt /etc/ &> /mnt/a.txt
[root@server0 ~]# cat /mnt/a.txt
运算:
[root@server0 ~]# echo 1+2 | bc
[root@server0 ~]# echo 2*3 | bc
[root@server0 ~]# echo 4/2 | bc
[root@server0 ~]# echo 10%3 | bc #取余数运算
$( ):将命令的输出结果,作为参数
[root@server0 ~]# rm -rf /opt/*
[root@server0 ~]# cd /opt/
[root@server0 opt]# date
[root@server0 opt]# date +%F #输出年月日
[root@server0 opt]# mkdir $(date +%F)
[root@server0 opt]# ls
[root@server0 opt]# mkdir mydir-$(date +%F)
[root@server0 opt]# ls
[root@server0 opt]# mkdir $(hostname)-$(date +%F)
[root@server0 opt]# ls
''(单引号):取消特殊字符的意义
[root@server0 /]# echo '* >'
[root@server0 /]# echo '* > ? {} [] ~'
#####################################################
/dev/null:黑洞设备
变量:为了增加脚本适用环境的能力,以及方便适用
变量作用:以不变的名称,存储变化的值(容器)
read 产生交互:为了降低脚本的使用难度
[root@server0 /]# cat /root/user.sh
#!/bin/bash
read -p '请输入您要创建的用户名:' user
useradd $user &> /dev/null
echo $user用户创建成功
echo 123 | passwd --stdin $user &> /dev/null
echo $user用户密码设置成功
[root@server0 /]# /root/user.sh
#!/bin/bash
read -p '请输入您要创建的用户名:' user
read -p '请输入您要设置的密码:' pass
useradd $user &> /dev/null
echo $user用户创建成功
echo $pass | passwd --stdin $user &> /dev/null
echo $user用户密码设置成功
#################################################
变量的定义
• 以不变的名称存放的可能会变化的值
– 变量名=变量值
– 方便以固定名称重复使用某个值
– 提高对任务需求、运行环境变化的适应能力
• 设置变量时的注意事项
– 若指定的变量名已存在,相当于为此变量重新赋值
– 等号两边不要有空格
– 变量名由字母/数字/下划线组成,区分大小写
– 变量名不能以数字开头,不要使用关键字和特殊字符
• 基本格式
– 引用变量值:$变量名
– 查看变量值:echo $变量名、echo ${变量名}
[root@server0 /]# a=rhel
[root@server0 /]# echo $a
[root@server0 /]# echo ${a}
[root@server0 /]# echo $a7
[root@server0 /]# echo ${a}7
环境变量
• 常见的环境变量
– USER(当前登陆的用户)
– RANDOM(储存一个随机数)
位置变量
• 在执行脚本时提供的命令行参数
– 表示为 $n,n为序号
– $1、$2、.. .. ${10}、${11}、.. ..
[root@server0 /]# vim /root/2.sh
#!/bin/bash
echo $1
echo $2
echo $3
[root@server0 /]# /root/2.sh hello tom harry
[root@server0 /]# vim /root/3.sh
#!/bin/bash
cat -n $1 | head -$2
[root@server0 /]# /root/3.sh /etc/passwd 3
预定义变量
$# 已
加载的位置变量的个数
$* 所有位置变量的值
$? 程序退出后的状态值,0表示正常,其他值异常
[root@server0 ~]# cat /root/3.sh
#!/bin/bash
echo $1
echo $2
echo $#
echo $*
[root@server0 ~]# /root/3.sh haha xixi hehe lele
######################################################
常用的测试选项
• 检查文件状态
-e:存在为真
-d:存在且为目录才为真
-f:存在且为文件才为真
-r:存在且具备读取权限才为真
-w:存在且具备写入权限才为真
-x:存在且具备执行权限才为真
• 比较整数大小(带e字母的都有“等于”二字)
-gt:大于
-ge:大于等于
-eq:等于
-ne:不等于
-lt:小于
-le:小于等于
• 字符串比对
==:相等为真
!=:不相等为真
####################################################
if双分支处理
if [条件];then
命令序列xx
else
命令序列yy
fi
请书写脚本:
用户输入一个用户名,判断用户是否存在
如果存在 输出用户/etc/passwd相应一行
如果不存在 则创建该用户
[root@server0 ~]# vim /root/6.sh
read -p '请输入一个用户名:' user
id $user &> /dev/null
if [ $? -eq 0 ];then
grep $user /etc/passwd
else
useradd $user
echo $user 创建成功
fi
[root@server0 ~]# /root/6.sh
请书写脚本:
计算机随机产生一个10以内的随机数
用户随机输入一个10以内的随机数
如果相等,则中奖了
如果不相等,则谢谢回顾
[root@server0 ~]# vim /root/7.sh
#!/bin/bash
read -p '请输入一个10以内的随机数字:' num1
num2=$(echo $RANDOM % 10 | bc)
if [ $num1 -eq $num2 ];then
echo 恭喜您,中奖了
else
echo 恭喜您,谢谢回顾
echo 正确数字为$num2
fi
[root@server0 ~]# /root/7.sh
if多分支处理
if [条件1] ; then
命令序列xx
elif [条件2] ; then
命令序列yy
elif [条件3] ; then
命令序列aa
else
命令序列zz
fi
请书写脚本:
请用户输入积分.
如果用户的积分大于等于90,输出 vip plus
如果用户的积分大于等于80,输出 vip
如果用户的积分大于等于70,输出 老司机
如果用户的积分大于等于60,输出 新手
以上均不满足,输出 仍需努力
[root@server0 ~]# vim /root/8.sh
#!/bin/bash
read -p '请用户输入积分:' num
if [ $num -ge 90 ];then
echo VIP PLUS
elif [ $num -ge 80 ];then
echo VIP
elif [ $num -ge 70 ];then
echo 老司机
elif [ $num -ge 60 ];then
echo 新手
else
echo 仍需努力
fi
##################################################
案例4:编写一个判断脚本
在 server0 上创建 /root/foo.sh 脚本
1)当运行/root/foo.sh redhat,输出为fedora
2)当运行/root/foo.sh fedora,输出为redhat
3)当没有任何参数或者参数不是 redhat 或者
fedora时,其错误输出产生以下信息:
/root/foo.sh redhat|fedora
[root@server0 ~]# vim /root/foo.sh
#!/bin/bash
if [ $# -eq 0 ];then
echo '/root/foo.sh redhat|fedora' >&2
exit 2
elif [ $1 == redhat ];then
echo fedora
elif [ $1 == fedora ];then
echo redhat
else
echo '/root/foo.sh redhat|fedora' >&2
exit 3
fi
[root@server0 ~]# /root/foo.sh
[root@server0 ~]# echo $?
[root@server0 ~]# /root/foo.sh 2> /opt/2.txt
[root@server0 ~]# cat /opt/2.txt
##################################################
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
#######################################################
真机上:还原三台虚拟机cla***oom、server、desktop
[root@room9pc14 桌面]# rht-vmctl reset cla***oom
[root@room9pc14 桌面]# rht-vmctl reset server
[root@room9pc14 桌面]# rht-vmctl reset desktop
真机远程管理:ssh方式,方便使用server与desktop
[root@room9pc14 桌面]# ssh 用户名@IP地址
补充快捷键: Ctrl+Shift+t 开启一个新的终端
[root@room9pc14 桌面]# ssh -X [email protected]
##################################################
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://cla***oom/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