Linux操作系统概述(六)

第十六单元 lvm

pv
物理卷
被lvm命令处理过的物理分区

vg
物理巻组
被组装到一起的物理巻

pe
物理扩展
lvm设备的最小单元,lvm是pe的整数倍

lvm
逻辑卷
直接使用的设备,可以增大缩减并保持原有的数据不变

lvm建立

分区并指定标签为8e
pvcreate /dev/vdb1		建立物理巻
vgcreate vg0 /dev/vdb1		建立物理巻组
lvcreate -L 20M -n lv0 vg0
mkfs.xfs /dev/vg0/lv0		格式化
mount /dev/vg0/lv0 /mnt
df -h /mnt

建立大小为20M的lvm:lv0
Linux操作系统概述(六)_第1张图片
将其格式化后挂载:
Linux操作系统概述(六)_第2张图片
Linux操作系统概述(六)_第3张图片

lvm拉伸缩减

lvm支持热拉伸

1.针对xfs文件系统的设备的拉伸(xfs不支持缩减)

1)当vg中的剩余容量充足时

lvextend -L 80M /dev/vg0/lv0 	拉伸设备
xfs_growfs /dev/vg0/lv0		拉伸文件系统

拉伸时先拉伸设备再拉伸文件系统:
Linux操作系统概述(六)_第4张图片
2)当vg中的剩余容量不足时

再次建立分区并指定标签为8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2		拉伸物理巻组
lvextnd -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0

Linux操作系统概述(六)_第5张图片

Linux操作系统概述(六)_第6张图片

2.针对ext文件系统的设备的拉伸和缩减

umount /mnt
mkfs.ext4 /dev/vg0/lv0 
mount /dev/vg0/lv0 /mnt

Linux操作系统概述(六)_第7张图片
拉伸

lvextend -L 250M /dev/vg0/lv0 
resize2fs /dev/vg0/lv0

Linux操作系统概述(六)_第8张图片

缩减
ext4不支持热缩减

umount /dev/vg0/lv0		缩减前先卸载
e2fsck -f /dev/vg0/lv0
resize2fs /dev/vg0/lv0 100M	缩减文件系统
lvreduce -L 100M /dev/vg0/lv0	缩减设备
mount /dev/vg0/lv0 /mnt

由于ext4不支持热缩减,所以缩减前要先卸载设备
Linux操作系统概述(六)_第9张图片
缩减时应先缩减文件系统,在缩减设备:
Linux操作系统概述(六)_第10张图片

缩减vg

vgreduce vg0 /dev/vdb2
vgextend vg0 /dev/vdb2

Linux操作系统概述(六)_第11张图片

Linux操作系统概述(六)_第12张图片

数据迁移

pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1

Linux操作系统概述(六)_第13张图片

Linux操作系统概述(六)_第14张图片

Linux操作系统概述(六)_第15张图片

lvm快照

lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
Linux操作系统概述(六)_第16张图片

Linux操作系统概述(六)_第17张图片
如果截取数据大于40M,会损坏设备(快照)

截取一段60M的数据:
dd if=/dev/zero of=/mnt/file bs=1M count=60

会自动卸载掉lv0-backup,再次挂载会报错
Linux操作系统概述(六)_第18张图片

Linux操作系统概述(六)_第19张图片
umount /mnt
lvremove /dev/vg0/lv0-backup 相当于设备的reset
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0

Linux操作系统概述(六)_第20张图片

第十七单元 ftp

1.ftp启用

yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd

2.ftp基本信息

访问数据的端口:21
数据传输端口:>1024的随机端口

默认发布目录:/var/ftp/
访问方式:
lftp 172.25.254.110 匿名用户登录 --> /var/ftp
lftp 172.25.254.110 -u student 用户登录 --> /home/student

配置文件:/etc/vsftpd/vsftpd.conf

3.ftp安全部署

500报错:权限过大
530报错:认证失败
550报错:服务本身不允许
553报错:文件系统权限过小

匿名用户的设定

匿名用户上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub

vim /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES

匿名用户下载
anon_world_readable_only=NO

匿名用户建立目录
anon_mkdir_write_enable=YES

匿名用户删除和重命名
anon_other_write_enable=YES

匿名用户家目录修改
anon_root=/westos

匿名用户默认上传文件权限
anon_umask=xxx

匿名用户使用的用户身份修改
chown_upload=YES
chown_username=student

最大上传速率
anon_max_rate=102400(单位:字节)
dd if=/dev/zero of=/mnt/bigfile bs=1M count=2000

最大链接个数
max_clients=5

本地用户的设定

本地用户家目录修改
local_root=/westos

本地用户上传文件权限
local_umask=xxx

限制本地用户浏览根目录
chroot_local_user=YES 此参数要求去掉自己对家目录的写权限
chmod u-w /home/*

用户黑名单建立
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

限制本地用户登录
vim /etc/vsftpd/ftpusers 永久黑名单
vim /etc/vsftpd/user_list 临时黑名单

用户白名单设定
userlist_deny=NO
/etc/vsftpd/user_list
此参数设定,此文件变成用户白名单,名单中出现的用户可以登录ftp

用户黑名单设定
userlist_deny=YES
/etc/vsftpd/user_list
此参数设定,此文件变成用户黑名单,名单中出现的用户不可以登录ftp

当用户同时出现在永久黑名单和临时白名单中时,用户不能登录ftp

ftp虚拟用户的设定

  • vim /etc/vsftpd/westos 文件名称任意

user1
123
user2
123

在/etc/vsftpd/目录下打开westos文件(文件名称任意),写虚拟用户及其密码:Linux操作系统概述(六)_第21张图片

  • db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db

对westos文件加密得到westos.db文件

  • vim /ect/pam.d/westos 文件名称任意

account required pam_userdb.so db=/etc/vsftpd/westos
auth required pam_userdb.so db=/etc/vsftpd/westos

在/etc/pam.d/目录下打开westos文件(文件名称任意):
Linux操作系统概述(六)_第22张图片

  • vim /etc/vsftpd/vsftpd.conf

pam_service_name=westos
guest_enable=YES

编辑配置文件:
Linux操作系统概述(六)_第23张图片
测试:
Linux操作系统概述(六)_第24张图片
虚拟用户身份指定
guest_username=westos

虚拟用户家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/ U S E R u s e r s u b t o k e n = USER user_sub_token= USERusersubtoken=USER

mkdir -p /ftphome/user1/user1dir
mkdir -p /ftphome/user2/user2dir

虚拟用户独立配置
chgrp ftp /ftphome -R
chmod 775 /ftphome/user1/user1dir
chmod 775 /ftphome/user2/user2dir

vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
mkdir -p /etc/vsftpd/userconf

vim /etc/vsftpd/userconf/user1
举例:anon_upload_enable=YES

第十八单元 selinux

修改selinux安全上下文

1.临时修改

1)对文件
touch /mnt/westos
mv /mnt/westos /var/ftp

lftp 172.25.254.110
ls -Z /var/ftp
ps auxZ | grep vsftpd

Linux操作系统概述(六)_第25张图片
测试:lftp 172.25.254.110 -u student 可以上传文件
Linux操作系统概述(六)_第26张图片
vim /etc/sysconfig/selinux
disabled —> enforcing
reboot重启

touch /mnt/westos1
mv /mnt/westos1 /var/ftp

lftp 172.25.254.110
ls -Z /var/ftp
ps auxZ | grep vsftpd

Linux操作系统概述(六)_第27张图片
测试:lftp 172.25.254.110 -u student 不能上传文件
Linux操作系统概述(六)_第28张图片
修改selinux

setenforce 0
permissive

测试:lftp 172.25.254.110 -u student 可以上传文件
Linux操作系统概述(六)_第29张图片

cat /var/log/audit/audit.log
Linux操作系统概述(六)_第30张图片
修改安全上下文
chcon -t public_content_t /var/ftp/westos1 临时修改
测试:lftp 172.25.254.110
Linux操作系统概述(六)_第31张图片

2)对目录:
mkdir /westos
touch /westos/westosfile{1..5}

ls -Zd /westos
ls -Zd /westos/*
lftp 172.25.254.110

Linux操作系统概述(六)_第32张图片

vim /etc/vsftpd/vsftpd.conf
anon_root=/westos

lftp 172.25.254.110 	不能访问
ls -Zd /westos
ps auxZ | grep vsftpd

Linux操作系统概述(六)_第33张图片
修改selinux
setenforce 0
Linux操作系统概述(六)_第34张图片
修改安全上下文
chcon -t public_content_t /westos -R 临时修改
ls -Zd /westos
Linux操作系统概述(六)_第35张图片
把selinux重启一次,安全上下文又变回default_t(因为是临时修改)
Linux操作系统概述(六)_第36张图片

2.永久修改

semanage fcontent -l | grep /var/ftp
semanage fcontent -l | grep /westos

Linux操作系统概述(六)_第37张图片

semanage fcontent -a -t public_content_t /westos
semanage fcontent -l | grep /westos	只改变了westos的安全上下文
restorecon -RvvF /westos

semanage fcontent -d -t public_content_t /westos

Linux操作系统概述(六)_第38张图片

rm -fr /westos
mkdir /westos
touch /westos/file{1..5}

ls -Zd /westos
ls -Zd /westos/*

Linux操作系统概述(六)_第39张图片

semanage fcontent -a -t public_content_t '/westos(/.*)?'
restorecon -RvvF /westos

Linux操作系统概述(六)_第40张图片

管理selinux布尔值

getsebool -a | grep ftp		显示布尔值
ftp_home_dir ---> off
setsebool -P ftp_home_dir on	修改布尔值

本地用户可以写,可以删除
Linux操作系统概述(六)_第41张图片

selinux排错

 *****  Plugin catchall_boolean (57.6 confidence) suggests   ******************

If you want to allow ftpd to full access
Then you must tell SELinux about this by enabling the 'ftpd_full_access' boolean.

Do
setsebool -P ftpd_full_access 1

*****  Plugin catchall_labels (36.2 confidence) suggests   *******************

If you want to allow vsftpd to have read access on the  directory
Then you need to change the label on $FIX_TARGET_PATH
Do
semanage fcontext -a -t FILE_TYPE '$FIX_TARGET_PATH'

Then execute: 
restorecon -v '$FIX_TARGET_PATH'


*****  Plugin catchall (7.64 confidence) suggests   **************************

If you believe that vsftpd should be allowed read access on the  directory by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
grep vsftpd /var/log/audit/audit.log | audit2allow -M mypol
semodule -i mypol.pp

rpm -qa | grep setroubleshoot
Linux操作系统概述(六)_第42张图片

你可能感兴趣的:(Linux操作系统概述(六))