【Linux】_Engineer_用户和组,ACL,磁盘分区,权限,进程管理,防火墙策略

添加并测试用户账号

创建一个名为stu01的用户账号
检查/etc/passwd、/etc/shadow文件的最后一行
检查/home/新增加的宿主目录(家目录)
为用户stu01设置一个密码(123456)

useradd stu01

grep stu01 /etc/passwd

grep stu01 /etc/shadow

ls /home

echo 123456 | passwd --stdin stu01

添加账号时设置不同属性

新建用户zh01,宿主目录位于/opt/zh01
新建系统账号sys01,将UID设为1234,登录Shell设为/sbin/nologin
用户sys01设置密码,并测试是否能够登录
新建用户admin,附加组设为adm、root
[root@A ~]# useradd -d /opt/zh01 zh01
[root@A ~]# grep zh01 /etc/passwd
[root@A ~]# useradd -u 1234 -s /sbin/nologin sys01
[root@A ~]# echo 123 | passwd --stdin sys01
[root@A ~]# grep sys01 /etc/passwd
[root@A ~]# useradd -G adm,root admin

passwd设置密码

交互式给用户zh01设置密码123456
用**–stdin**方式将用户zh01的密码设为654321
[root@A ~]# passwd zh01
[root@A ~]# echo 654321 | passwd --stdin zh01

usermod修改用户

1)新建一个用户zh03,将宿主目录设为/opt/home03,并设置密码
2)设置zh03密码为redhat
3)将用户zh03的宿主目录改为/home/zh03
4)将用户sys01的登录Shell改为/bin/bash
[root@A ~]# useradd -d /opt/home03 zh03
[root@A ~]# grep zh03 /etc/passwd
[root@A ~]# echo redhat | passwd --stdin zh03
[root@A ~]# usermod -d /home/zh03 zh03
[root@A ~]# grep zh03 /etc/passwd
[root@A ~]# usermod -s /bin/bash sys01

组账号基本管理

1)新建组账号stugrp
2)为stugrp组添加三个成员用户(user01、root、zhangsan)
3)从stugrp组删除一个成员(user01)
groupadd stugrp
useradd user01
useradd zhangsan
gpasswd -M user01,root,zhangsan stugrp
grep stugrp /etc/group

gpasswd -d user01 stugrp

grep stugrp /etc/group

环境的准备

还原快照,开启CentOS7虚拟机,利用root进行登录
构建本地Yum仓库
[root@localhost ~]# mkdir /nsd30
[root@localhost ~]# mount /dev/cdrom /nsd30
[root@localhost ~]# ls /nsd30
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/dvd.repo
[haha]
name=xixi
baseurl=file:///nsd30
enabled=1
gpgcheck=0
[root@localhost ~]# yum -y install xorg-x11-apps

二、基本权限与归属

访问权限:
读取:允许查看内容-read。
写入:允许修改内容-write。
可执行:允许运行和切换-excute

对于文本文件:
r读取权限:cat、less、grep、head、tail。
w写入权限:vim、> 、 >>
x可执行权限:Shell与Python

归属关系:
所有者(属主):拥有此文件/目录的用户-user
所属组(属组):拥有此文件/目录的组-group
其他用户:除所有者、所属组以外的用户-other

zhangsan(所有者) zhangsan(所属组) 1.txt

执行 ls -l或者ls -ld 命令查看:
以-开头:文本文件。 以d开头:目录。 以l开头:快捷方式

[root@localhost ~]# ls -ld /etc/
[root@localhost ~]# ls -ld /tmp #有特殊权限
[root@localhost ~]# ls -l /etc/shadow
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# ls -ld /home/zhangsan

三、修改权限

** chmod命令: 格式:chmod [ugoa] [±=][rwx] 文件… **
常用命令选项: -R:递归修改权限
mkdir /nsd10。
]# ls -ld /nsd10
]# chmod u-w /nsd10 #所有者去掉w权限
]# chmod u+w /nsd10 #所有者加上w权限
]# chmod g+w /nsd10 #所属组加上w权限
]# chmod g=r /nsd10 #所属组重新定义权限
]# chmod a=rwx /nsd10 #a表示所有人
]# chmod u=—,g=rx,o=rwx /nsd10
]# ls -ld /nsd10
[root@localhost ~]# mkdir -p /opt/aa/bb
[root@localhost ~]# chmod -R o=— /opt/aa
[root@localhost ~]# ls -ld /opt/aa
[root@localhost ~]# ls -ld /opt/aa/bb

Linux中判断用户具备的权限:

1.查看用户,对于该数据所处的身份,顺序所有者>所属组>其他人,原则是匹配及停止
2.查看相应身份的权限位
对于目录:读取权限:查看目录内容。写入权限:能够创建、删除、修改等目录的内容。执行权限:能够cd切换到此目录下

设置基本权限
1)以root身份新建/nsddir1/目录,在此目录下新建readme.txt文件
[root@localhost ~]# mkdir /nsddir1
[root@localhost ~]# echo 123456 > /nsddir1/readme.txt
[root@localhost ~]# cat /nsddir1/readme.txt
2)使用户zhangsan能够修改readme.txt文件内容
[root@localhost ~]# chmod o+w /nsddir1/readme.txt
3)使用户zhangsan不可以修改readme.txt文件内容
[root@localhost ~]# chmod o-w /nsddir1/readme.txt
4)使用户zhangsan能够在此目录下创建/删除子目录
[root@localhost ~]# chmod o+w /nsddir1/
5)调整此目录的权限,使任何用户都不能进入,然后测试用户zhangsan是否还能修改readme.txt(测试结果不能,对父目录没有权限)
[root@localhost ~]# chmod a-x /nsddir1/
6)为此目录及其下所有文档设置权限 rwxr-x—
[root@localhost ~]# chmod -R u=rwx,g=rx,o=— /nsddir1/

四、修改归属关系

chown命令 :chown 属主 文件… chown 属主:属组 文件… chown :属组 文件…

常用命令选项:-R:递归修改归属关系

mkdir /nsd15 ls -ld /nsd15
]# groupadd tmooc #创建组tmooc
]# chown lisi:tmooc /nsd15 #修改所有者与所属组
]# chown zhangsan /nsd15 #仅修改所有者
]# chown :root /nsd15 #仅修改所属组
]# ls -ld /nsd15

归属关系练习
1)利用root的身份新建/tarena目录,并进一步完成下列操作
[root@localhost ~]# mkdir /tarena
2)将/tarena属主设为gelin01,属组设为tmooc组
[root@localhost ~]# useradd gelin01
[root@localhost ~]# groupadd tmooc
[root@localhost ~]# chown gelin01:tmooc /tarena
3)使用户gelin01对此目录具有rwx权限,除去所有者与所属组之外的用户对此目录无任何权限
[root@localhost ~]# chmod o=— /tarena
4)使用户gelin02能进入、查看此目录
[root@localhost ~]# useradd gelin02
[root@localhost ~]# gpasswd -a gelin02 tmooc
5)将gelin01加入tmooc组,将tarena目录的权限设为450,测试gelin01用户能否进入此目录
[root@localhost ~]# gpasswd -a gelin01 tmooc
[root@localhost ~]# chmod 450 /tarena

权限利用数字方式表示

权限位的8进制数表示:r、w、x分别对应4、2、1,后3组分别求和
分组 User权限 Group权限 Other权限
字符 r w x r - x r - x
数字 4 2 1 4 0 1 4 0 1
求和 7 5 5
mkdir /nsd14 ls -ld /nsd14
chmod 700 /nsd14 chmod 007 /nsd14 chmod 750 /nsd14
hmod 755 /nsd14 ls -ld /nsd14

五、附加权限(特殊权限)

粘滞位,Sticky Bit 权限:占用其他人(Other)的 x 位。 显示为 t 或 T,取决于其他人是否有 x 权限
适用于目录,用来限制用户滥用写入权。 在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档

[root@localhost ~]# mkdir /home/public
[root@localhost ~]# chmod 777 /home/public
[root@localhost ~]# chmod o+t /home/public
[root@localhost ~]# ls -ld /home/public

Set GID权限:占用属组(Group)的 x 位。 显示为 s 或 S,取决于属组是否有 x 权限
对目录有效。 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份

]# mkdir /nsd18
]# chown :tmooc /nsd18
]# mkdir /nsd18/abc01
]# ls -ld /nsd18/abc01
]# chmod g+s /nsd18 #赋予SGID特殊权限
]# mkdir /nsd18/abc02
]# ls -ld /nsd18/abc02

ACL策略管理:文档归属的局限性:任何人只属于三种角色:属主、属组、其他人。 针对特殊的人实现更精细的控制

acl访问策略作用:能够对个别用户、个别组设置独立的权限。大多数挂载的EXT3/4、XFS文件系统默认已支持

setfacl命令格式:
setfacl [选项] u:用户名:权限 文件…
setfacl [选项] g:组名:权限 文件…

常用选项:
-m:修改ACL策略,
-x:清除指定的ACL策略,
-b:清除所有已设置的ACL策略,
-R:递归设置ACL策略

mkdir /nsd19 chmod 770 /nsd19 ls -ld /nsd19
su - dc cd /nsd19
-bash: cd: /nsd19: 权限不够
Exit setfacl -m u:dc:rx /nsd19 #单独赋予dc权限
getfacl /nsd19 #查看ACL策略 su - dc cd /nsd19 pwd exit
ACL命令的练习:]# mkdir /nsd22
]# setfacl -m u:dc:rx /nsd22
]# setfacl -m u:zhangsan:rwx /nsd22
]# setfacl -m u:lisi:rx /nsd22
]# setfacl -m u:gelin01:rwx /nsd22
]# setfacl -x u:zhangsan /nsd22 #删除指定用户ACL
]# setfacl -x u:dc /nsd22 #删除指定用户ACL
]# setfacl -b /nsd22 #清除目录所有ACL策略
]# getfacl /nsd22

七、补充内容
ACL策略-黑名单的使用(单独拒绝某些用户)
]# setfacl -m u:lisi:— /home/public/
]# getfacl /home/public/
附加权限SUID权限:占用属主(User)的 x 位。显示为 s 或 S,取决于属主是否有 x 权限。仅对可执行的程序有意义。当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限
[root@localhost ~]# which mkdir
/usr/bin/mkdir
[root@localhost ~]# /usr/bin/mkdir /opt/abc01
[root@localhost ~]# ls /opt/
[root@localhost ~]# cp /usr/bin/mkdir /usr/bin/hahadir
[root@localhost ~]# ls -l /usr/bin/hahadir
[root@localhost ~]# /usr/bin/hahadir /opt/abc02
[root@localhost ~]# ls /opt/
[root@localhost ~]# chmod u+s /usr/bin/hahadir
[root@localhost ~]# ls -l /usr/bin/hahadir
[root@localhost ~]# su - zhangsan
[zhangsan@localhost ~]$ /usr/bin/mkdir zs01
[zhangsan@localhost ~]$ /usr/bin/hahadir zs02
[zhangsan@localhost ~]$ ls -l

文件/目录的默认权限:新建文件/目录的默认权限:一般文件默认均不给 x 执行权限。其他取决于 umask(权限掩码) 设置。新建目录默认权限为755。新建文件默认权限为644
[root@localhost ~]# umask
0022
[root@A ~]# umask -S
u=rwx,g=rx,o=rx

二、磁盘空间的管理

真机是Linux:
[root@localhost ~]# ls /dev/vda #虚拟接口第一块盘
[root@localhost ~]# ls /dev/vdb #虚拟接口第二块盘
真机是windows:添加一块新的硬盘(磁盘)
2.查看本机识别的新的硬盘
[root@localhost ~]# ls /dev/sda #SCSI接口第一块
[root@localhost ~]# ls /dev/sdb #SCSI接口第二块
[root@localhost ~]# lsblk #列出当前系统识别的硬盘
扇区的大小:512字节
一块硬盘的“艺术”之旅(硬盘空间使用,经历的步骤)
•识别硬盘 => 分区规划 => 格式化 => 挂载使用

三、识别硬盘:
lsblk #列出当前系统识别的硬盘

四、分区规划 :分区方案(分区模式): MBR与GPT

•MBR/msdos分区模式:–分区类型:主分区、扩展分区(占用所有剩余空间)、逻辑分区。最多只能有4个主分区。
扩展分区可以没有,至多有一个。
1~4个主分区,或者 3个主分区+1个扩展分区(n个逻辑分区)。最大支持容量为 2.2TB 的磁盘。
扩展分区不能格式化,空间不能直接存储数据。可以用于存储数据的分区:主分区与逻辑分区。

fdisk常用交互指令:
m 列出指令帮助
p 查看现有的分区表(存放分区信息的表格)
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出

真机为Linux: [root@localhost ~]# fdisk /dev/vdb
n 创建新的分区–>分区类型 回车–>分区编号 回车–>起始扇区 回车–>在last结束时 +2G–p 查看分区表
n 创建新的分区–>分区类型 回车–>分区编号 回车–>起始扇区 回车–>在last结束时 +1G–w 保存并退出
Lsblk ls /dev/vdb[1-2]

真机为windows:[root@localhost ~]# fdisk /dev/sdb
n 创建新的分区–>分区类型 回车–>分区编号 回车–>起始扇区 回车–>在last结束时 +2G,p 查看分区表
n 创建新的分区–>分区类型 回车–>分区编号 回车–>起始扇区 回车–>在last结束时 +1G,w 保存并退出
Lsblk ls /dev/sdb[1-2]

五、格式化:赋予空间文件系统的过程

文件系统:数据在空间中存放的规则
Windows常见的文件系统:NTFS FAT
Linux常见的文件系统:ext4(RHEL6) xfs(RHEL7) FAT

]# ls /dev/vdb[1-2]
]# mkfs.(tab)(tab) #连续按两次tab键
]# mkfs.ext4 /dev/vdb1 #格式化文件系统ext4
]# mkfs.xfs /dev/vdb2 #格式化文件系统xfs
]# blkid /dev/vdb1 #查看文件系统类型
]# blkid /dev/vdb2 #查看文件系统类型

六、挂载使用

[root@localhost ~]# mkdir /mypart1
[root@localhost ~]# mount /dev/vdb1 /mypart1
[root@localhost ~]# df -h #显示正在挂载的设备信息
[root@localhost ~]# mkdir /mypart2
[root@localhost ~]# mount /dev/vdb2 /mypart2
[root@localhost ~]# df -h #显示正在挂载的设备信息
总结:识别硬盘 lsblk。划分分区 MBR分区模式 fdisk 。格式化文件系统 mkfs.xfs mkfs.ext4 blkid 。4.挂载使用 mount df -h

七、开机自动挂载/etc/fstab

–设备路径 挂载点 文件系统类型 参数 备份标记 检测顺序
[root@localhost ~]# vim /etc/fstab
/dev/sdb1 /mypart1 ext4 defaults 0 0
/dev/sdb2 /mypart2 xfs defaults 0 0
[root@localhost ~]# umount /mypart1 #卸载
[root@localhost ~]# umount /mypart2 #卸载
[root@localhost ~]# df -h | grep mypart
[root@localhost ~]# mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确。
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
[root@localhost ~]# df -h | grep mypart
如果/etc/fstab文件有误:修复办法 :输入root的密码。.修改/etc/fstab文件内容

八、综合分区

[root@localhost ~]# fdisk /dev/sdb
p 查看分区表
n 创建主分区—>回车—>回车—>回车—>在last结束时 +2G
p 查看分区表
n 创建扩展分区 —>回车—>起始回车—>结束回车 将所有剩余空间给扩展分区
p 查看分区表
n 创建逻辑分区----->起始回车------>结束+2G
n 创建逻辑分区----->起始回车------>结束+2G
n 创建逻辑分区----->起始回车------>结束+2G
p 查看分区表
w 保存并退出
[root@localhost ~]# lsblk
[root@localhost ~]# partprobe #刷新分区表
Warning: 无法以读写方式打开 /dev/sr0 (只读文件系统)。/dev/sr0 已按照只读方式打开。
[root@localhost ~]# lsblk

总结:
识别硬盘 lsblk。
分区规划 fdisk
MBR分区模式。
刷新分区表 partprobe。
格式化文件系统 。mkfs.ext4 mkfs.xfs blkid。
挂载 mount /etc/fstab mount -a df -h

十、分区模式GPT

1.关闭计算机,添加新的硬盘
2.分区模式GPT :GPT,GUID Partition Table
全局唯一标识分区表,突破固定大小64字节的分区表限制,最多可支持128个主分区,最大支持18EB容量
** 1 EB = 1024 PB = 1024 x 1024 TB

parted常用分区指令:
help //查看指令帮助。
mktable gpt //建立指定模式分区表。
mkpart 分区的名称 文件系统类型
start end。 //指定大小或百分比%作为起始、结束位置。
print //查看分区表。
rm 序号 //删除指定的分区。
quit //退出交互环境

parted进行分区: parted /dev/sdc
(parted) mktable gpt #指定分区模式
(parted) mkpart #划分新的分区
分区名称? []? haha #随意写
文件系统类型? [ext2]? ext4 #随意写,不会进行格式化
起始点? 0
结束点? 2G
忽略/Ignore/放弃/Cancel? Ignore #选择忽略,输入i(tab)补全
(parted) print #查看分区表信息
(parted) unit GB #使用GB作为单位
(parted) mkpart #划分新的分区
分区名称? []? haha
文件系统类型? [ext2]? ext4
起始点? 2G #为上一个分区的结束
结束点? 5G
(parted) print (parted) quit [root@localhost ~]# lsblk

非交互式:百分比的利用
命令 硬盘设备 分区命令 分区名字 文件系统类型 起始 结束
]# parted /dev/sdc mkpart xixi ext4 12G 100%

十一、交换空间(虚拟内存)

利用硬盘的空间,充当内存的空间
CPU----->内存----->硬盘
当物理内存占满了,CPU可以将内存的中数据,暂时放入交换空间中,缓解真实物理内存的压力
交换空间最大不会超过16G

方式一:利用硬盘分区制作交换空间
]# ls /dev/sdc1
]# mkswap /dev/sdc1 #格式化交换文件系统
]# blkid /dev/sdc1 #查看文件系统类型
]# swapon #查看交换空间组成的成员信息
]# swapon /dev/sdc1 #启用交换分区
]# swapoff /dev/sdc1 #停用交换分区
]# free -m #查看交换空间的大小
开机自动启用交换分区
[root@localhost ~]# vim /etc/fstab
/dev/sdc1 swap swap defaults 0 0
[root@localhost ~]# swapoff /dev/sdc1 #停用
[root@localhost ~]# swapon -a #专门检测交换分区的书写
[root@localhost ~]# swapon #查看交换空间组成的成员信息
[root@localhost ~]# reboot #重启检测

方式二:利用文件制作交换空间
dd if=数据的来源 of=数据生成的位置 bs=每次读写数据大小 count=次数
]# dd if=/dev/zero of=/opt/swap.txt bs=1M count=2048
]# du -sh /opt/swap.txt
]# mkswap /opt/swap.txt
]# swapon /opt/swap.txt
swapon: /opt/swap.txt:不安全的权限 0644,建议使用 0600。
]# swapon

四、逻辑卷

作用:1.整合分散的空间 2.空间支持扩大

逻辑卷制作过程:将众多的物理卷(PV)组建成卷组(VG),再从卷组中划分出逻辑卷(LV)

LVM管理工具集
功能 物理卷管理 卷组管理 逻辑卷管理
Scan 扫描 pvscan vgscan lvscan
Create 创建 pvcreate vgcreate lvcreate
Display 显示 pvdisplay vgdisplay lvdisplay
Remove 删除 pvremove vgremove lvremove
Extend 扩展 / vgextend lvextend

五、制作逻辑卷

建立卷组(VG): 格式:vgcreate 卷组名 设备路径……. Successfully:成功
[root@localhost ~]# vgcreate systemvg /dev/sdb[1-2]
[root@localhost ~]# pvs #查看系统所有物理卷信息
[root@localhost ~]# vgs #查看系统卷组信息

建立逻辑卷(LV) : 格式: lvcreate -L 大小G -n 逻辑卷名字 卷组名
[root@localhost ~]# lvcreate -L 16G -n vo systemvg
[root@localhost ~]# vgs #查看卷组信息
[root@localhost ~]# lvs #查看逻辑卷信息

使用逻辑卷(LV)
]# ls -l /dev/systemvg/vo
]# mkfs.xfs /dev/systemvg/vo #格式化xfs文件系统
]# blkid /dev/systemvg/vo #查看文件系统类型

]# vim /etc/fstab
/dev/systemvg/vo /mylv xfs defaults 0 0
]# mkdir /mylv
]# mount -a #检测fstab文件内容书写是否正确
]# df -h #查看查看正在挂载使用的设备

六、逻辑卷的扩展

卷组有足够的剩余空间
1.扩展逻辑卷的空间:]# df -h | grep vo,]# vgs,]# lvextend -L 18G /dev/systemvg/vo,]# vgs
]# lvs
2.扩展逻辑卷的文件系统(刷新文件系统):xfs_growfs:刷新xfs文件系统。。resize2fs:刷新ext4文件系统
]# xfs_growfs /dev/systemvg/vo,]# df -h | grep vo,]# lvs
卷组没有足够的剩余空间
1.扩展卷组的空间:]# vgextend systemvg /dev/sdb3 /dev/sdb5,]# vgs
2.扩展逻辑卷的空间:]# vgs,]# lvextend -L 25G /dev/systemvg/vo,]# vgs,]# df -h | grep vo
3.扩展逻辑卷的文件系统(刷新文件系统):]# xfs_growfs /dev/systemvg/vo,]# df -h | grep vo

七、逻辑卷的补充

逻辑卷支持缩减:xfs文件系统:不支持缩减。。。ext4文件系统:支持缩减
卷组划分空间的单位 PE: 默认1个PE的大小为4M
]# vgdisplay systemvg
PE Size 4.00 MiB

请创建一个大小为250M的逻辑卷名字为lvredhat
]# vgchange -s 1M systemvg #修改PE大小
]# vgdisplay systemvg #查看卷组详细信息
]# lvcreate -L 250M -n lvredhat systemvg
]# lvs

创建逻辑卷的时候指定PE个数: lvcreate -l PE个数 -n 逻辑卷名 卷组名
[root@localhost ~]# lvcreate -l 108 -n lvhaha systemvg
[root@localhost ~]# lvs

逻辑卷的删除
删除卷组的前提:基于此卷组创建的所有逻辑卷,要全部删除
删除逻辑卷的前提:不能删除正在挂载使用的逻辑卷
[root@localhost ~]# lvremove /dev/systemvg/vo
Logical volume systemvg/vo contains a filesystem in use.
[root@localhost ~]# umount /mylv/
[root@localhost ~]# lvremove /dev/systemvg/vo
Do you really want to remove active logical volume systemvg/vo? [y/n]: y
Logical volume “vo” successfully removed
[root@localhost ~]# vim /etc/fstab #仅删除vo开机自动挂载
[root@localhost ~]# lvremove /dev/systemvg/lvredhat
Do you really want to remove active logical volume systemvg/lvredhat? [y/n]: y
Logical volume “vo” successfully removed

RAID磁盘阵列:需要服务器硬件RAID卡
廉价冗余磁盘阵列:Redundant Arrays of Inexpensive Disks 。通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘。阵列的价值:提升I/O效率、硬件级别的数据冗余。不同RAID级别的功能、特性各不相同

RAID 0,条带模式。。。同一个文档分散存放在不同磁盘。并行写入以提高效率。至少需要两块磁盘组成,磁盘利用率100%
RAID 1,镜像模式。。。一个文档复制成多份,分别写入不同磁盘。多份拷贝提高可靠性,效率无提升。至少需要两块磁盘组成,磁盘利用率50%
RAID5,高性价比模式:相当于RAID0和RAID1的折中方案。需要至少一块磁盘的容量来存放校验数据。至少需要三块磁盘组成,磁盘利用率n-1/n
RAID6,高性价比/可靠模式:相当于扩展的RAID5阵列,提供2份独立校验方案。需要至少两块磁盘的容量来存放校验数据。至少需要四块磁盘组成,磁盘利用率n-2/n
RAID 0+1/RAID 1+0:整合RAID 0、RAID 1的优势。并行存取提高效率、镜像写入提高可靠性。至少需要四块磁盘组成,磁盘利用率50%

九、进程管理

程序:静态没有执行的代码 硬盘空间
进程:动态执行的代码 CPU与内存资源
父进程与子进程 树型结构
进程编号:PID

pstree查看进程
常用命令选项:-a:显示完整的命令行 -p:列出对应进程的PID编号
systemd(PID永远为1):所有进程的父进程(上帝进程)

[root@localhost ~]#pstree -p lisi
bash(9609)───vim(9656)
[root@localhost ~]# pstree -a lisi
bash
└─vim haha.txt
[root@localhost ~]# pstree -ap lisi

ps — Processes Snapshot: 格式:ps [选项]…
常用命令选项L:aux:显示当前终端所有进程(a)、当前用户在所有终端下的进程(x)、以用户格式输出(u)。。-elf:显示系统内所有进程(-e)、以长格式输出(-l)信息、包括最完整的进程信息(-f)。
ps aux 操作:列出正在运行的所有进程,显示进程信息非常详细
用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
ps -elf 操作:列出正在运行的所有进程,显示进程父进程信息 PPID为父进程的PID

请计算正在运行的进程有多少个?
[root@localhost ~]# wc -l /etc/passwd
[root@localhost ~]# ps aux | wc -l
[root@localhost ~]# ps -elf | wc -l
top 交互式工具: 格式:top [-d 刷新秒数] [-U 用户名]
[root@localhost ~]# top -d 1
按大写P进行CPU排序。按大写M进行内存排序
pgrep — Process Grep: 用途:pgrep [选项]… 查询条件

常用命令选项:
-l:输出进程名,而不仅仅是 PID。
-U:检索指定用户的进程。
-x:精确匹配完整的进程名

]# pgrep -l a
]# pgrep -U lisi
]# pstree -p lisi
]# pgrep -x crond
]# pgrep -lx crond

十、控制进程(进程前后台的调度)

进程的前后台调度:&符号:正在运行的状态放入后台。。。Ctrl + z 组合键。。挂起当前进程(暂停并转入后台)
jobs 命令:查看后台任务列表
fg 命令:将后台任务恢复到前台运行
bg 命令:激活后台被挂起的任务

[root@localhost ~]# yum -y install xorg-x11-apps
[root@localhost ~]# xeyes #按Ctrl+z 暂停放入后台
[1]+ 已停止 xeyes
[root@localhost ~]# jobs #查看后台进程信息
[root@localhost ~]# bg 1 #让后台编号为1 的进程继续运行
[root@localhost ~]# jobs #查看后台进程信息
[root@localhost ~]# fg 1 #让后台编号为1 的进程恢复到前台
Xeyes #按Ctrl+c 结束

VDO 了解内容:Virtual Data Optimizer(虚拟数据优化器)
一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽。VDO是基于块设备层之上的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可
重复数据删除:输入的数据会判断是不是冗余数据。判断为重复数据的部分不会被写入,然后对源数据进行更新,直接指向原始已经存储的数据块即可
压缩:对每个单独的数据块进行处理

[root@svr7 ~]# yum -y install vdo kmod-kvdo #所需软件包
制作VDO卷
vdo基本操作:参考man vdo 全文查找/example
vdo create --name=VDO卷名称 --device=设备路径 --vdoLogicalSize=逻辑大小
–vdo list
–vdo status -n VDO卷名称
–vdo remove -n VDO卷名称
–vdostatus [–human-readable] [/dev/mapper/VDO卷名称]
VDO卷的格式化加速(跳过去重分析):
–mkfs.xfs –K /dev/mapper/VDO卷名称
–mkfs.ext4 -E nodiscard /dev/mapper/VDO卷名称
前提制作VDO需要2G以上的内存
[root@nb ~]# vdo create --name=vdo0 --device=/dev/sdc --vdoLogicalSize=200G
[root@nb ~]# mkfs.xfs -K /dev/mapper/vdo0
[root@nb ~]# mkdir /nsd01 mount /dev/mapper/vdo0 /nsd01 df -h
[root@nb ~]# vdostats --hum /dev/mapper/vdo0 #查看vdo设备详细信息
[root@svr7 ~]# vim /etc/fstab
/dev/mapper/vdo0 /nsd01 xfs defaults,_netdev 0 0

网络参数配置(主机名、IP地址、子网掩码、网关地址、DNS服务器地址)
还原快照,开启虚拟机。 永久的主机名,配置文件/etc/hostname
[root@localhost ~]# cat /etc/hostname
localhost.localdomain
[root@localhost ~]# echo svr7.tedu.cn > /etc/hostname
[root@localhost ~]# cat /etc/hostname
[root@localhost ~]# hostname svr7.tedu.cn #临时设置
[root@localhost ~]# hostname

开启一个新的终端,进行查看主机名
修改网卡的命名规则:eth0、eth1、eth2…….
]# ifconfig | head -2
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 00:0c:29:a1:a5:d3 txqueuelen 1000 (Ethernet)
]# vim /etc/default/grub #引导内核启动的文件
…….此处省略一万字
GRUB_CMDLINE_LINUX=" …….此处省略一万字
quiet net.ifnames=0 biosdevname=0"
…….此处省略一万字

]# grub2-mkconfig -o /boot/grub2/grub.cfg #重新生成引导文件
]# reboot #重启验证
]# ifconfig | head -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500

删除错误的网卡识别
]# nmcli connection show #显示识别的网卡信息
]# nmcli connection delete ens33
成功删除连接 ‘ens33’(ce3cba85-30f3-4af2-a046-ffe18a7ff640)。
]# nmcli connection delete 有线连接\ 1
成功删除连接 ‘有线连接 1’(342c364a-8857-3217-96aa-a8ec915b2ce2)。
]# nmcli connection add type ethernet con-name eth0 ifname eth0
连接“eth0”(4362e195-d3b1-479b-9575-9439f8d23776) 已成功添加。

nmcli 连接网络设备 添加 类型 以太网设备 命名为 eth0

网卡设备为 eth0
配置网卡的IP地址、子网掩码、网关地址
]# nmcli connection modify eth0 ipv4.method manual
ipv4.addresses 192.168.4.7/24
ipv4.gateway 192.168.4.254
connection.autoconnect yes
]# nmcli 连接网络设备 修改网卡 eth0 ipv4.方法 手工配置
ipv4.地址 192.168.4.7/24
ipv4.网关 192.168.4.254
每次开机自动启用上述配置
]# nmcli connection up eth0 #激活网卡eth0配置
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/5)
]# ifconfig | head -2
]# route -n #查看Linux路由表(查看网关命令)
]# 网卡配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0

配置本机的DNS服务器
DNS服务器:将域名解析为IP地址
[root@svr7 ~]# ls /etc/resolv.conf
/etc/resolv.conf
[root@svr7 ~]# echo nameserver 1.1.1.1 > /etc/resolv.conf
[root@svr7 ~]# cat /etc/resolv.conf
nameserver 1.1.1.1

构建永久的本地Yum仓库
创建挂载点目录,挂载光驱设备,
]# vim /etc/yum.repos.d/mydvd.repo
]# yum -y install xorg-x11-apps
]# rpm -q xorg-x11-apps #查询软件是否安装成功
]# blkid /dev/cdrom #查看文件系统类型
]# vim /etc/fstab
/dev/cdrom /mydvd iso9660 defaults 0 0
]# reboot
]# ifconfig | head -2
]# yum repolist

模板虚拟机设置
[root@svr7 ~]# vim /etc/fstab #修改UUID为/dev/sda1
/dev/sda1 /boot xfs defaults 0 0

真机与虚拟机通信

1.查看真机虚拟网卡,.真机配置VMnet1的网卡IP地址为192.168.4.1,双击VMnet1网络适配器,配置虚拟机网络类型,右击----》选择设置,测试通信,Windows键+r快捷键
常见问题:1.虚拟网卡vmnet1没有

如果还是无法出现vmnet1,参考下列网站方法
https://jingyan.baidu.com/article/066074d6f19bd0c3c31cb048.html
真机与虚拟机远程管理
Windows->Linux远程访问:1.远程管理 2.传递数据 3.开启对方的图形程序
左键双击运行moba xterm软件,右击—》user session

Ctrl + 滑动滚轮=字体变大或变小
修改虚拟机的名字

修改虚拟机B网络参数
1.修改虚拟机B的主机名
[root@svr7 ~]# echo pc207.tedu.cn > /etc/hostname
[root@svr7 ~]# hostname pc207.tedu.cn
开启一个新的终端,查看主机名的变化
2.配置虚拟机B的IP地址
[root@pc207 ~]# nmcli connection modify eth0
ipv4.method manual ipv4.addresses 192.168.4.207/24 connection.autoconnect yes
[root@pc207 ~]# nmcli connection up eth0
[root@pc207 ~]# ifconfig | head -2
[root@pc207 ~]# poweroff

Linux远程管理Linux
SSH协议,Secure Shell:为客户机提供安全的 Shell 环境。默认端口:TCP 22
OpenSSH 服务:服务名称:sshd。主程序:/usr/sbin/sshd、/usr/bin/ssh。
配置文件:/etc/ssh/sshd_config
[root@svr7 ~]# rpm -qa | grep openssh
虚拟机A进行远程管理
[root@svr7 ~]# ssh root@192.168.4.207
Are you sure you want to continue connecting (yes/no)? yes
root@192.168.4.207’s password: #输入密码
[root@pc207 ~]# exit #退出
ssh+cp结合,传递数据
虚拟机A:[root@svr7 ~]# scp /etc/passwd root@192.168.4.207:/opt/
root@192.168.4.207’s password:
[root@svr7 ~]# scp -r /home root@192.168.4.207:/opt/
root@192.168.4.207’s password:
虚拟机B:[root@pc207 ~]# ls /opt
虚拟机A:[root@svr7 ~]# scp root@192.168.4.207:/etc/fstab /root
root@192.168.4.207’s password:
fstab 100% 458 477.6KB/s 00:00
[root@svr7 ~]# ls /root

ssh实现无密码的验证
虚拟机A:生成公钥与私钥
[root@svr7 ~]# ssh-keygen #一路回车
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): #回车
Enter passphrase (empty for no passphrase): #回车
Enter same passphrase again: #回车
[root@svr7 ~]# ls /root/.ssh/
id_rsa(私钥) id_rsa.pub (公钥)
known_hosts(记录曾经远程管理过的机器)
虚拟机A:传递公钥给虚拟机B
[root@svr7 ~]# ssh-copy-id root@192.168.4.207
root@192.168.4.207’s password:
[root@svr7 ~]# ssh root@192.168.4.207 #测试是否没有密码
虚拟机B:别的机器传递过来的公钥
[root@pc207 ~]# ls /root/.ssh
authorized_keys

源码编译安装
RPM包:rpm -ivh yum install
源码包----开发工具---->可以执行的程序----->运行安装
主要优点:获得软件的最新版,及时修复bug。软件功能可按需选择/定制,有更多软件可供选择。源码包适用各种平台
传递源码包到虚拟机A
[root@svr7 /]# ls /root/

步骤1:安装开发工具
[root@svr7 /]# yum -y install gcc
[root@svr7 /]# yum -y install make
步骤2:tar解包,释放源代码至指定目录
]# tar -xf /root/tools.tar.gz -C /usr/local/
]# ls /usr/local/
]# ls /usr/local/tools/
]# tar -xf /usr/local/tools/inotify-tools-3.13.tar.gz -C /usr/local/
]# ls /usr/local/
]# cd /usr/local/inotify-tools-3.13/
步骤3:./configure 配置,指定安装目录/功能模块等选项
]# ./configure --prefix=/opt/myrpm #当前运行脚本指定安装位置
步骤4:make 编译,生成可执行的二进制程序文件
]# make
步骤5:make install 安装,将编译好的文件复制到安装目录
]# make install
]# ls /opt/
]# ls /opt/myrpm/
]# ls /opt/myrpm/bin/ #查看安装好的程序
案例1:虚拟机B上操作:实现静态网络参数配置: 主机名:test.example.com。IP地址:172.25.0.11。 子网掩码:255.255.0.0。– 默认网关:172.25.0.254。 DNS服务器:172.25.254.254
案例2:虚拟机B上操作:实现静态网络参数配置: 主机名:B.tedu.cn。 IP地址:192.168.1.1。 子网掩码:255.255.255.0。 默认网关:192.168.1.254。 DNS服务器:8.8.8.8
案例5:虚拟机B: 1.源码编译安装 inotify-tools 软件工具。 2.安装位置为/usr/local/tools
案例6:虚拟机B:传递数据: 1.将本机/usr/local/tools/other目录传递到虚拟机A,放在虚拟机A的/usr/目录下。 2.将本机/etc/gshadow文件传递到虚拟机A,放在虚拟机A的/root目录下。 3.将本机/etc/skel目录传递到虚拟机A,放在虚拟机A的/tmp目录下
案例7:虚拟机B:远程无密码验证
1.实现虚拟机B远程管理虚拟机A,无需密码验证.。

二、常用的网络工具

ip命令
1.查看IP地址:]# ip address show ]# ip a s
2.添加IP地址:]# ip address add 192.168.10.1/24 dev eth0 ]# ip a s
ping 命令,测网络连接:选项 -c 包个数
[root@svr7 ~]# ping -c 2 192.168.4.7

四、日志管理
系统和程序的“日记本”:记录系统、程序运行中发生的各种事件。通过查看日志,了解及排除故障。信息安全控制的“依据”
由系统服务rsyslog统一记录/管理:日志消息采用文本格式。主要记录事件发生的时间、主机、进程、内容
•常见的日志文件
日志文件 主要用途
/var/log/messages 记录内核消息、各种服务的公共消息
/var/log/dmesg 记录系统启动过程的各种消息
/var/log/cron 记录与cron计划任务相关的消息
/var/log/maillog 记录邮件收发相关的消息
/var/log/secure 记录与访问限制相关的安全消息
通用分析工具:tail、tailf、less、grep等文本浏览/检索命令。awk、sed等格式化过滤工具
tailf:实时跟踪
[root@svr7 /]# echo 123456 > /opt/1.txt
[root@svr7 /]# tailf /opt/1.txt
users、who、w 命令:查看已登录的用户信息,详细度不同
last、lastb 命令:查看最近登录成功/失败的用户信息
[root@svr7 /]# users
[root@svr7 /]# who
pts:图形命令行终端
[root@svr7 /]# last #登录成功的用户
[root@svr7 /]# lastb #登录失败的用户
Linux内核定义的事件紧急程度:分为 0~7 共8种优先级别。其数值越小,表示对应事件越紧急/重要
0 EMERG(紧急) 会导致主机系统不可用的情况
1 ALERT(警告) 必须马上采取措施解决的问题
2 CRIT(严重) 比较严重的情况
3 ERR(错误) 运行出现错误
4 WARNING(提醒) 可能会影响系统功能的事件
5 NOTICE(注意) 不会影响系统但值得注意
6 INFO(信息) 一般信息
7 DEBUG(调试) 程序或系统调试信息等

五、系统安全保护

SELinux概述:Security-Enhanced Linux
美国NSA国家安全局主导开发,一套增强Linux系统安全的强制访问控制体系。集成到Linux内核(2.6及以上)中运行。RHEL7基于SELinux体系针对用户、进程、目录和文件提供了预设的保护策略,以及管理工具

SELinux的运行模式:enforcing(强制)、permissive(宽松)。disabled(彻底禁用), 任何模式变成disabled模式,都要经历重启系统
切换运行模式:临时切换:setenforce 1或0。固定配置:/etc/selinux/config 文件
虚拟机A :
[root@svr7 /]# getenforce #查看当前运行模式
Enforcing
[root@svr7 /]# setenforce 0 #修改当前运行模式
[root@svr7 /]# getenforce
Permissive
[root@svr7 /]# vim /etc/selinux/config
SELINUX=permissive
虚拟机B:同上

六、系统故障修复

如果/etc/fstab文件有误:修复办法
1.输入root的密码

2.修改/etc/fstab文件内容

破解root密码思路
前提:必须是服务器的管理者,涉及重启服务器
1)重启系统,进入 恢复模式(救援模式)
[root@A ~]# reboot
开启虚拟机A,在此界面按e键

找到linux16该行
在linux16该行的最后,空格输入 rd.break console=tty0

按 ctrl + x 启动,会看到switch_root#
2)以可写方式重新挂载 /,并切换到此环境

chroot /sysroot #切换环境,切换到硬盘操作系统的环境
mount -o remount,rw / #让根目录下所有数据,可以读也可以写入

3)重新设置root的密码
sh-4.2# echo 1 | passwd --stdin root
4)如果SELinux是强制模式,才需要重设SELinux策略(其他模式不需要做此操作)
sh-4.2# vim /etc/selinux/config #查看SELinux开机的运行模式
sh-4.2# touch /.autorelabel #让SELinux失忆
5)强制重启系统完成修复
sh-4.2# reboot -f

七、构建基本服务

构建Web服务:Web服务:提供一个页面内容的服务。
提供Web服务的软件:httpd、Nginx、tomcat
http协议:超文本传输协议
daemon(守护神)

虚拟机A:
1.安装软件包
[root@svr7 ~]# yum -y install httpd

2.运行提供Web服务程序
]# > /etc/resolv.conf #清空此文件内容
]# /usr/sbin/httpd #绝对路径运行程序
]# pgrep -l httpd #查看进程信息

4.书写一个页面文件
[root@svr7 ~]# vim /var/www/html/index.html
hahaxixiNSD2012Web 521

5.浏览器访问测试
[root@svr7 ~]# curl http://192.168.4.7
hahaxixiNSD2012Web 521
构建FTP服务 :FTP:文本传输协议。实现FTP服务功能的软件:vsftpd。 默认共享数据的主目录:/var/ftp/

虚拟机A
1.安装软件包
[root@svr7 ~]# yum -y install vsftpd

2.运行程序
[root@svr7 ~]# /usr/sbin/vsftpd

3.访问测试
[root@svr7 ~]# curl ftp://192.168.4.7

八、防火墙的策略管理:作用:隔离,严格过滤入站,放行出站。硬件防火墙VS软件防火墙

•系统服务:firewalld
•管理工具:firewall-cmd、firewall-config
根据所在的网络场所区分,预设保护规则集:public:仅允许访问本机的ssh、dhcp、ping服务。trusted:允许任何访问 。block:拒绝任何来访请求,明确拒绝客户端。drop:丢弃任何来访的数据包,不给任何回应
防火墙判定原则:1.查看客户端请求中来源IP地址,查看自己所有区域中规则,那个区域中有该源IP地址规则,则进入该区域。2.进入默认区域(默认情况下为public)

防火墙默认区域的修改

虚拟机A
]# firewall-cmd --get-default-zone #查看默认区域

虚拟机B
]# curl http://192.168.4.7 #失败
]# curl ftp://192.168.4.7 #失败
]# ping -c 2 192.168.4.7 #成功

虚拟机A:修改默认区域
]# firewall-cmd --set-default-zone=trusted

虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #成功

防火墙public区域添加规则

虚拟机A:添加允许的协议
]# firewall-cmd --set-default-zone=public
]# firewall-cmd --zone=public --add-service=http
]# firewall-cmd --zone=public --list-all

虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #失败

虚拟机A:添加允许的协议
]# firewall-cmd --zone=public --add-service=ftp
]# firewall-cmd --zone=public --list-all

虚拟机B
]# curl http://192.168.4.7 #成功
]# curl ftp://192.168.4.7 #成功

防火墙public区域添加规则(永久)
-永久(–permanent)
]# 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

防火墙:单独拒绝192.168.4.207所有访问
虚拟机A:
]# firewall-cmd --zone=block --add-source=192.168.4.207

虚拟机B:
]# curl http://192.168.4.7 #失败
真机:测试访问192.168.4.7 #成功

九、服务的管理

用户—》systemd—》服务
•上帝进程:systemd
•Linux系统和服务管理器:是内核引导之后加载的第一个初始化进程(PID=1)。负责掌控整个Linux的运行/服务资源组合。一个更高效的系统&服务管理器。开机服务并行启动,各系统服务间的精确依赖。配置目录:/etc/systemd/system/。服务目录:/lib/systemd/system/。

主要管理工具:systemctl

[root@svr7 ~]# systemctl -t service --all #列出所有的服务

•对于服务的管理(与手动启动有冲突)
systemctl restart 服务名 #重起服务
systemctl start 服务名 #开启服务
systemctl stop 服务名 #停止服务
systemctl status 服务名 #查看服务当前的状态
systemctl enable 服务名 #设置服务开机自启动
systemctl disable 服务名 #设置服务禁止开机自启动
systemctl is-enabled 服务名 #查看服务是否开机自启
]# yum -y install httpd
]# > /etc/resolv.conf #清除文件内容
]# killall httpd #杀死手动启动的httpd
]# systemctl restart httpd #重启httpd服务
]# systemctl status httpd #查看服务httpd状态
]# systemctl enable httpd #设置httpd开机自启动
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
]# systemctl is-enabled httpd #查看httpd是否是开机自启动
]# systemctl disable httpd #关闭httpd开机自启动
Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
]# systemctl is-enabled httpd #查看httpd是否是开机自启动

管理运行级别

RHEL6:运行级别 300

0:关机 0个服务
1:单用户模式(基本功能的实现,破解Linux密码) 50个服务
2:多用户字符界面(不支持网络) 80个服务
3:多用户字符界面(支持网络)服务器默认运行级别 100个服务
4:未定义 0个服务
5:图形界面 300个服务
6:重起 0个服务
切换运行级别:init 数字

RHEL7:运行模式(运行级别)

字符模式:multi-user.target
图形模式:graphical.target
当前直接切换到字符模式
]# systemctl isolate multi-user.target #相当于原来的init 3
当前直接切换到图形模式
]# systemctl isolate graphical.target #相当于原来的init 5
查看每次开机默认进入模式
[root@svr7 /]# systemctl get-default
设置永久策略,每次开机自动进入multi-user.target
[root@svr7 /]# systemctl set-default multi-user.target
[root@svr7 /]# reboot

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值