pv
物理卷
被lvm命令处理过的物理分区
vg
物理巻组
被组装到一起的物理巻
pe
物理扩展
lvm设备的最小单元,lvm是pe的整数倍
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
lvm支持热拉伸
1)当vg中的剩余容量充足时
lvextend -L 80M /dev/vg0/lv0 拉伸设备
xfs_growfs /dev/vg0/lv0 拉伸文件系统
拉伸时先拉伸设备再拉伸文件系统:
2)当vg中的剩余容量不足时
再次建立分区并指定标签为8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 拉伸物理巻组
lvextnd -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
umount /mnt
mkfs.ext4 /dev/vg0/lv0
mount /dev/vg0/lv0 /mnt
lvextend -L 250M /dev/vg0/lv0
resize2fs /dev/vg0/lv0
缩减
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不支持热缩减,所以缩减前要先卸载设备
缩减时应先缩减文件系统,在缩减设备:
vgreduce vg0 /dev/vdb2
vgextend vg0 /dev/vdb2
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
截取一段60M的数据:
dd if=/dev/zero of=/mnt/file bs=1M count=60
umount /mnt
lvremove /dev/vg0/lv0-backup 相当于设备的reset
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
访问数据的端口:21
数据传输端口:>1024的随机端口
默认发布目录:/var/ftp/
访问方式:
lftp 172.25.254.110 匿名用户登录 --> /var/ftp
lftp 172.25.254.110 -u student 用户登录 --> /home/student
配置文件:/etc/vsftpd/vsftpd.conf
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
user1
123
user2
123
在/etc/vsftpd/目录下打开westos文件(文件名称任意),写虚拟用户及其密码:
对westos文件加密得到westos.db文件
account required pam_userdb.so db=/etc/vsftpd/westos
auth required pam_userdb.so db=/etc/vsftpd/westos
在/etc/pam.d/目录下打开westos文件(文件名称任意):
pam_service_name=westos
guest_enable=YES
编辑配置文件:
测试:
虚拟用户身份指定
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
touch /mnt/westos
mv /mnt/westos /var/ftp
lftp 172.25.254.110
ls -Z /var/ftp
ps auxZ | grep vsftpd
测试:lftp 172.25.254.110 -u student 可以上传文件
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
测试:lftp 172.25.254.110 -u student 不能上传文件
修改selinux
setenforce 0
permissive
测试:lftp 172.25.254.110 -u student 可以上传文件
cat /var/log/audit/audit.log
修改安全上下文
chcon -t public_content_t /var/ftp/westos1 临时修改
测试:lftp 172.25.254.110
mkdir /westos
touch /westos/westosfile{1..5}
ls -Zd /westos
ls -Zd /westos/*
lftp 172.25.254.110
vim /etc/vsftpd/vsftpd.conf
anon_root=/westos
lftp 172.25.254.110 不能访问
ls -Zd /westos
ps auxZ | grep vsftpd
修改selinux
setenforce 0
修改安全上下文
chcon -t public_content_t /westos -R 临时修改
ls -Zd /westos
把selinux重启一次,安全上下文又变回default_t(因为是临时修改)
semanage fcontent -l | grep /var/ftp
semanage fcontent -l | grep /westos
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
rm -fr /westos
mkdir /westos
touch /westos/file{1..5}
ls -Zd /westos
ls -Zd /westos/*
semanage fcontent -a -t public_content_t '/westos(/.*)?'
restorecon -RvvF /westos
getsebool -a | grep ftp 显示布尔值
ftp_home_dir ---> off
setsebool -P ftp_home_dir on 修改布尔值
***** 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