####lvm####
pv ##物理卷
被lv命令处理过的物理分区
vg ##物理卷组
被组装到一起的物理卷
pe ##物理扩展
lvm设备的最小单元,lvm时pe的整数倍
lvm ##逻辑卷
直接使用的设备,可以增大缩减并保持原有数据不变
###lvm建立###
1.分区并指定标签为8e
pvcreate /dev/vdb2 ##建立物理卷
vgcreate vg1 /dev/vdb2 ##合成物理卷组
lvcreate -L 80M -n lv1 vg1 ##建立80M的逻辑卷
mkfs.xfs /dev/vg1/lv1 ##格式化
mount /dev/vg1/lv1 /mnt ##挂载
df -h /mnt
##lvm拉伸
lvm支持热拉伸
##xfs文件系统支持热拉伸不支持缩减
1.当vg中的剩余容量充足时
lvextend -L 90M /dev/vg1/lv1 ##扩展lvm
xfs_growfs /dev/vg1/lv1 ##挂载信息更改,及时能应用
2.当vg中剩余容量不足时
再次建立分区并指定标签为8e
pvcreate /dev/vdb3 ##添加容量
vgextend vg0 /dev/vdb3 ##填充vg的容量,拉伸物理卷组
lvextend -L 200M /dev/vg0/lv0 ##给lvm扩展到200M
xfs_growfs /dev/vg0/lv0 ##挂载信息更改,及时能应用
3.针对ext4文件系统的设备的拉伸和缩减
umount /mnt ##卸载
mkfs.ext4 /dev/vg0/lv0 ##以ext4格式化
mount /dev/vg0/lv0 /mnt ##重新挂载
##拉伸
lvextend -L 250M /dev/vg0/lv0 ##将lvm扩展到250M
resize2fs /dev/vg0/lv0 ##挂载信息更改,及时能应用
##缩减
umount /dev/vg0/lv0 ##卸载
e2fsck -f /dev/vg0/lv0 ##查错,看是否有报错
resize2fs /dev/vg0/lv0 100M ##文件系统物理层的更改
lvreduce -L 100M /dev/vg0/lv0 ##缩减lvm为100M
mount /dev/vg0/lv0 /mnt ##重新挂载
##缩减vg
vgreduce vg0 /dev/vdb1
vgextend vg0 /dev/vdb1
##数据迁移
pvmove /dev/vdb1 /dev/vdb2
vgreduce vg0 /dev/vdb2
pvremove /dev/vdb2
####lvm快照####
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,再次挂载会报错
umount /mnt
lvremove /dev/vg0/lv0-backup ##相当于设备的reset
lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
再次挂载可以查看到源设备的数据
####ftp####
##1.ftp启用
yum install -y vsftpd
systemctl start vsftpd
systemctl enable vsftpd
##2.ftp基本信息
访问数据的端口:21
数据传输端口:>1024的随即端口
默认发布目录:/var/ftp
访问方式:
lftp 172.25.254.131 ##匿名用户登录 --> /var/ftp
lftp 172.25.254.131 -u student ##用户登录
配置文件:
/etc/vsftpd/vsftpd.conf
##3.ftp的安全部署
500报错:权限过大
550报错:服务本身不允许
530报错:认证失败
553报错:文件系统权限过小
#匿名用户上传
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
vim /etc/vsftpd/vsftp.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=144
#匿名用户使用的用户身份修改
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=022
#限制本地用户浏览根目录
chroot_local_user=YES ##此参数要求去掉自己对家目录的写权限
chmod u-w /home/*
用户黑名单的建立
chroot_local_user=NO
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
用户白名单建立
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
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 ##以hash方式加密
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
#虚拟用户独立配置
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 ##虚拟用户user1可上传,2不可以
####selinux####
touch /mnt/westos
mv /mnt/westos /var/ftp ##把该文件移动到默认发布目录
ls -Z /var/ftp ##查看信息
ps auxZ | grep vsftpd ##查看ftp的安全上下文的格式
chmod u+w /home/student ##给用户添加写权限
lftp 172.25.254.131 -u student ##可以上传,也可以删除
disable --> enforcing ##将selinux的配置文件改为enforcing
touch /mnt/westos1
mv /mnt/westos1 /var/ftp
ls -Z /var/ftp
ps auxZ | grep vsftpd
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/vsftpd/vsftpd.conf
anon_root=/westos
lftp 172.25.254.131 ##不能访问
setenforce 0 ##改为警告模式可见
chcon -t public_content_t /westos -R ##更改/westos的安全上下文
ls -Zd /westos ##当为enforcing状态下也可见
##把selinux重启一次,安全上下文又变回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 ##查看westos目录下所有文件的安全上下文
semanage fcontent -d -t public_content_t /westos #删除定义/westos的安全上下文
rm -fr /westos
mkdir /westos
touch /westos/westosfile{1..5}
semanage fcontext -a -t public_content_t '/westos(/.*)?' ##改变/westos下所以文件的安全上下文
restorecon -RvvF /westos
getsebool -a | grep ftp ##查看用户ftp权限
ftp_home_dir -->off
setsebool -P ftp_home_dir on ##打开用户建立目录权限
getsebool -a | grep ftp
vim /var/log/messages ##selinux排错
***** Plugin catchall_boolean (89.3 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 (11.6 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
[root@localhost ~]# 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