lvm
pv ##物理卷
被lv命令处理过的物理分区
vg ##物理卷组
被组装到一起的物理卷
pe ##物理扩展
lvm设备的最小单元,lvm是pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大缩减并保持原有数据不变
##lvm建立##
1.分区并指定标签为8e
watch -n 1 'pvs;echo===;vgs;echo===;lvs;echo===;df -h /mnt' ##另起终端动态查看lvm建立过程
pvcreate /dev/vdb1 ##初始化分区,使其作为物理卷与lvm结合使用
vgcreate vg0 /dev/vdb1 ##创建物理卷组vg0,并将物理卷添加到卷组
lvcreate -L 20M -n lv0 vg0 ##创建逻辑卷lv0,并将物理卷组添加到逻辑卷中
mkfs.xfs /dev/vg0/lv0 ##格式化逻辑卷,使其能挂载
mount /dev/vg0/lv0 /mnt ##挂载
df -h /mnt ##显示已挂载的逻辑卷容量
##lvm拉伸
lvm支持热拉伸(xfs文件系统支持热拉伸但不支持缩减;ext文件系统支持热拉伸也支持缩减,但不支持热缩减。)
1.当vg中的剩余容量充足时
lvextend -L 80M /dev/vg0/lv0 ##拉伸设备
xfs_growfs /dev/vg0/lv0 ##拉伸文件系统
2.当vg中剩余容量不足时
再次建立分区并指定标签为8e
pvcreate /dev/vdb2
vgextend vg0 /dev/vdb2 ##拉伸物理卷组
lvextend -L 200M /dev/vg0/lv0
xfs_growfs /dev/vg0/lv0
3.针对ext文件系统的设备的拉伸和缩减
umount /mnt
mkfs.ext4 /dev/vg0/lv0 ##创建ext4文件系统
mount /dev/vg0/lv0 /mnt
##拉伸
lvextend -L 250M /dev/vg0/lv0 ##拉伸设备
resize2fs /dev/vg0/lv0 ##拉伸文件系统
##缩减
umount /dev/vg0/lv0 ##需卸载设备
e2fsck -f /dev/vg0/lv0 ##检查文件系统
[root@localhost ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 11/26624 files (0.0% non-contiguous), 9013/102400 blocks
resize2fs /dev/vg0/lv0 100M ##先拉伸文件系统
lvreduce -L 100M /dev/vg0/lv0 ##再拉伸设备
mount /dev/vg0/lv0 /mnt
##缩减vg
vgreduce vg0 /dev/vdb2 ##vdb2的内存不被占用才能缩减
vgextend vg0 /dev/vdb2
##数据迁移
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb1
pvremove /dev/vdb1
pvremove /dev/vdb1
##lvm快照
umount /mnt
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt
如果截取数据大于40M,会损坏设备
dd if=/dev/zero of=/mnt/file bs=1M count=60
会自动卸载掉lv0-backup,再次挂载会报错
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.226 ##匿名用户登录
lftp 172.25.254.226 -u 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
yum install -y lftp ##需要下载lftpd服务
vim /etc/sysconfig/selinux
SELINUX=disabled ##关闭内核防火墙,配置完后需重启虚拟机
测试:
匿名用户下载
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 单位:字节 ##平均速率不超过100kb/s
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 ##账户名
111 ##密码
user2
222
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=redhat
测试:
虚拟用户家目录独立设定
vim /etc/vsftpd/vsftpd.conf
local_root=/ftphome/$USER
user_sub_token=$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
touch /mnt/westos ##建立共享目录
mv /mnt/westos /var/ftp ##共享到默认发布目录
ls -Z /var/ftp ##查看目录的信息
ps auxZ | grep vsftpd ##查看相关服务的所有进程信息
chmod u+w /home/student ##将student目录权限修改回用户可写
lftp 172.25.254.126 -u student ##可以上传,也可删除
disabled --> enforcing ##开启selinux
touch /mnt/westos1
mv /mnt/westos1 /var/ftp
ls -Z /var/ftp
ps auxZ | grep vsftpd
测试:
setenforce 0 ##切换selinux状态为警告(可以上传,也可删除)
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/vsftpd/vsftpd.conf
anon_root=/westos
lftp 172.25.254.126 ##不能访问
setenforce 0
chcon -t public_content_t /westos -R
ls -Zd /westos
#把selinux重启一次,即disabled --> enforcing,将安全上下文又变回default_t
semanage fcontext -l | grep /var/ftp
semanage fcontext -l | grep /westos
semanage fcontext -a -t public_content_t /westos
semanage fcontext -l | grep /westos ##只改变了westos目录的安全上下文
restorecon -RvvF /westos ##加载出目录及其文件的安全上下文
semanage fcontext -d -t public_content_t /westos
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 ##本地用户可以写,可以删除
测试:
vim /var/log/messages ##selinux排错
***** Plugin catchall_boolean (47.5 confidence) suggests ******************
If you want to allow ftp to home dir
Then you must tell SELinux about this by enabling the 'ftp_home_dir' boolean.
Do
setsebool -P ftp_home_dir 1
***** Plugin catchall_boolean (47.5 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 (6.38 confidence) suggests **************************
If you believe that vsftpd should be allowed create 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 ##排错服务
setroubleshoot-server-3.2.17-2.el7.x86_64
setroubleshoot-3.2.17-2.el7.x86_64
setroubleshoot-plugins-3.0.59-1.el7.noarch