Linux操作系统入门(8)

lvm

 pv	物理卷
	被lv命令处理过的物理分区
vg	物理卷组
	被组装到一起的物理卷
pe	物理扩展
	lvm设备的最小单元,lvm是pe的整数倍
lvm	逻辑卷
	直接使用的设备,可以增大缩减并保持原有的数据不变

lvm建立

1.分区并指定标签为8e

pvcreate /dev/vdb8
vgcreate /vg0 /dev/vdb8
lvcreate -L 20M -n lv0 vg0 
mkfs.xfs /dev/vg0/lv0 	/mnt
mount /dev/vg0/lv0 	/mnt
df -h /mnt 

改变已有分区8的标签为8e,建立物理卷,物理卷组和逻辑卷
在这里插入图片描述
建立完成后需挂载下面的文件系统才能看到vdb8文件系统的大小,下图中没有进行挂载
在这里插入图片描述

lvm拉伸

lvm支持热拉伸

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

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

拉伸文件系统时需进行挂载,下图中由于没有挂载,出现报错,挂载后即可
在这里插入图片描述

2.当vg中剩余容量不足时
再次建立分区并指定标签为8e

pvcreate /dev/vdb9
vgextend vg0 /dev/vdb9 		拉伸物理卷组
lvextend -L 100M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0

建立新分区9并将分区的标签改为8e
在这里插入图片描述
创建vdb9的物理卷,拉伸物理卷组,拉伸逻辑卷和文件系统
在这里插入图片描述
3.针对ext文件系统的设备的拉伸和缩减

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

拉伸和缩减前对文件系统进行格式化
在这里插入图片描述
拉伸

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

对文件系统进行250M的拉伸,由于lvm是pe的整数倍,本机的pe为4,所以实际显示的lvm的大小为252。可通过pvdisplay查看pe的大小
在这里插入图片描述
在这里插入图片描述
缩减

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 

缩减前要取消挂载,缩减可能会摧毁数据,所以在缩减时会出现警告,输入y即可继续
在这里插入图片描述

缩减vg

vgreduce vg0 /dev/vdb9
vgextend vg0 /dev/vdb9

因为vdb9之前时有4MB的数据是在用的,所以在缩减vg之前要先给逻辑卷进行缩减
在这里插入图片描述
缩减后vdb9就不属于vg0这个逻辑卷组了
在这里插入图片描述
扩展后vdb9再次属于vg0这个组
在这里插入图片描述 数据的迁移

pvmove /dev/vdb8 /dev/vdb9
vgreduce vg0 /dev/vdb8
pvremove /dev/vdb8

数据迁移后删除了vdb8
在这里插入图片描述

lvm快照

lvcreate -L 10M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt

创建快照
在这里插入图片描述

如果截取数据大于10M ,会损坏设备

dd if=/dev/zero of=/mnt/file bs=1M count=60

截取超过10M后,设备损坏,挂载消失
在这里插入图片描述

会自动卸载掉lv0-backup,再次挂载会报错

umount /mnt
lvremove /dev/vg0/lv0-backup
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0	相当于设备的reset
再次挂载可以查看到源设备的数据

在这里插入图片描述

ftp

1.ftp启用

yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd

设置防火墙
在这里插入图片描述
2.ftp基本信息
访问数据的端口:21
数据传输端口目录:大于1024的随机端口

默认发布:/var/ftp
访问方式

        lftp 172.25.254.109	匿名用户登录
	lftp 172.25.254.109 -u student student用户登录

默认访问pub目录
在这里插入图片描述
配置文件:

   /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_uploads=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

ftp虚拟用户设定

vim /etc/vsftpd/westos		文件名称任意
user1
123
user2
123
db_load -T -t hash -f /etc/vsftpd/westos /etc/vsftpd/westos.db

vim /etc/pam.d/westos		文件名称任意
account	 	required 	pam_userdb.so		db=/etc/vsftpd/westos
auth    	required 	pam_userdb.so		db=/etc/vsftpd/westos

vim /etc/vsftpd/vsftpd.conf
pam_service_name=westos
guest_enable=YES

在这里插入图片描述
虚拟用户身份指定

guest_username=westos

虚拟用户家目录独立设定

vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$USER

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

在配置文件中加入下列信息
在这里插入图片描述
创建两个目录后,用lftp查看,虚拟用户家目录设定完成
在这里插入图片描述
虚拟用户独立配置

chgrp ftp /ftphome/user1/user1dir
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/vsftd/userconf/user1
举例:anon_upload_enable=YES

让独立用户有上传权限
在这里插入图片描述

在这里插入图片描述

selinux

touch /mnt/westos
mv /mnt/westos /var/ftp

ls -Z /var/ftp
pa auZ | grep vsftpd
lftp 172.25.254.109 -u student		可以上传,可以删除

本地用户可以上传可以删除
在这里插入图片描述

disabled --> enforcing

touch /mnt/westos1
mv /mnt/westos1 /var/ftp
ls -Z /var/ftp
pa auZ | grep vsftpd

改变selinux为enforcing,本地用户就不能上传和删除
在这里插入图片描述

setenforce 0
permissive

cat /var/log/audit/audit.log

修改安全上下文
chcon -t public_content_t /var/ftp/westos1	临时的

临时修改安全上下文,本地用户可以上传和删除
在这里插入图片描述

对目录
mkdir /westos
touch /westos/westosfile{1..5}
ls -Zd /westos

vim /etc/vstpd/vsftpd.conf
anon_root=/westos
lftp 172.25.254.109 	不能访问
setenforce 0

chcon -t public_content_t /westos -R
ls -Zd /westos

先要修改默认目录
在这里插入图片描述

在这里插入图片描述
把selinux重启一次,安全上下文又变回default_t
在这里插入图片描述

在这里插入图片描述

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

semanage fcontext -a -t public_content_t /wetos 
semanage fcontext -l | grep /westos	只改变westos目录的安全上下文
restorecon -RvvF /westos

在这里插入图片描述

semanage fcontext -d -t public_content_t /wetos 

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

semanage fcontext -a -t public_content_t '/westos(/*)?'
restorecon -RvvF /westos
getsebool -a | grep ftp
ftp_home_dir -->off

setsebool -P ftp_home_dir on
本地用户可以写,可是删除

在这里插入图片描述

在这里插入图片描述
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.
You can read 'None' man page for more details.
Do
setsebool -P ftpd_full_access 1

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

If you want to allow vsftpd to have getattr access on the  file
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 getattr access on the  file 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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37206112/article/details/83685027