1.LVM(logical volume manager 动态管理卷)
1.1 定义:可以将多个硬盘和硬盘分区做成一个逻辑卷,并把这个逻辑卷作为一个整体来统一管理,动态的对分区进行扩大和缩小
pv ##物理卷 被我们lv***这个命令处理过的物理分区
lv ##物理组卷 被组装到一起的物理卷
lvm ##逻辑卷 直接使用的设备,可以增大缩减并保持原有的数据不变
pe ##物理扩展 lvm设备的最小存储单元 ,lvm是pe的整数倍
物理卷组相当于瓶子,逻辑卷(设备)相当于杯子,是瓶子中的数据给杯子中倾倒
1.2 lvm的建立
[root@desktop144 ~]# watch -n 1 'pvs;vgs;lvs;df -h' #监控便于观察
[root@desktop144 ~]# pvcreate /dev/vde1 #将vde1处理成物理卷
[root@desktop144 ~]# pvcreate /dev/vde2 #将vde2处理成物理卷
[root@desktop144 ~]# pvcreate /dev/vde3 #将vde3处理成物理卷
[root@desktop144 ~]# vgcreate ww /dev/vde1 #将物理卷组装成物理组ww
[root@desktop144 ~]# lvcreate -L 20M -n lv0 ww #从物理组ww中取出20M给lv0
[root@desktop144 ~]# mkfs.xfs /dev/ww/lv0 #格式化
[root@desktop144 ~]# mount /dev/ww/lv0 /mnt #挂载
[root@desktop144 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 6.6G 3.5G 66% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 474M 80K 474M 1% /dev/shm
tmpfs 474M 13M 461M 3% /run
tmpfs 474M 0 474M 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 473M 2.3M 442M 1% /home
/dev/mapper/ww-lv0 17M 1.1M 16M 7% /www
注意:ww,lv0名称可以随意,但vg和lv中必须保持一致
1.3 lvs的热拉伸(热:指的是在挂载是进行操作)
-L 500M #扩张到500M
-L +500M #在原有的基础上在添加500M
(1)当我们vg中剩余容量充足的时候(lvs支持热拉伸)
[root@desktop144 /]# lvextend -L 50M /dev/ww/lv0 #拉伸设备lv0到50M
Rounding size to boundary between physical extents: 52.00 MiB
Extending logical volume lv0 to 52.00 MiB
Logical volume lv0 successfully resized
[root@desktop144 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 6.6G 3.5G 66% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 474M 80K 474M 1% /dev/shm
tmpfs 474M 13M 461M 3% /run
tmpfs 474M 0 474M 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 473M 2.3M 442M 1% /home
/dev/mapper/ww-lv0 17M 1.1M 16M 7% /www
[root@desktop144 /]# xfs_growfs /dev/ww/lv0 #拉伸文件系统
[root@desktop144 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 6.6G 3.5G 66% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 474M 80K 474M 1% /dev/shm
tmpfs 474M 13M 461M 3% /run
tmpfs 474M 0 474M 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 473M 2.3M 442M 1% /home
/dev/mapper/ww-lv0 49M 1.2M 48M 3% /www
(2) 当我们vg中容量不足的时候
##再次建立分区并修改标签 t 为8e
[root@desktop144 ~]# pvcreate /dev/vde2 #将vde2处理成物理卷
[root@desktop144 /]# vgextend ww /dev/vde2 #将vde2添加到ww物理卷组中(给物理卷组中添加容量)
[root@desktop144 /]# lvextend -L 1000M /dev/ww/lv0 #拉伸设备到1G
[root@desktop144 /]# xfs_growfs /dev/ww/lv0 #拉伸文件系统
(3) 缩减 (将逻辑卷进行缩减)针对ext* (xfs文件系统 不支持缩减)
不支持热缩减要先卸载
[root@desktop144 /]# umount /www #卸载
[root@desktop144 /]# mkfs.ext4 /dev/ww/lv0 #重新铺建文件系统
[root@desktop144 /]# e2fsck -f /dev/ww/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/ww/lv0: 11/64000 files (0.0% non-contiguous), 8748/256000 blocks
[root@desktop144 /]# resize2fs /dev/ww/lv0 500M #缩减设备lv0
[root@desktop144 /]# lvreduce -L 500M /dev/ww/lv0
WARNING: Reducing active logical volume to 500.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 500.00 MiB
Logical volume lv0 successfully resized
[root@desktop144 /]# mount /dev/ww/lv0 /www #挂载
root@desktop144 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 6.6G 3.5G 66% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 474M 80K 474M 1% /dev/shm
tmpfs 474M 13M 461M 3% /run
tmpfs 474M 0 474M 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 473M 2.3M 442M 1% /home
/dev/mapper/ww-lv0 477M 1.5M 440M 1% /www
(3) 缩减vg(将物理卷组进行缩减)
[root@desktop144 /]# vgreduce ww /dev/vde2 #将vde2从物理卷组ww中移除
Removed "/dev/vde2" from volume group "ww"
[root@desktop144 /]# vgextend ww /dev/vde2 #将vde2添加到物理卷组ww中
Volume group "ww" successfully extended
(4) 数据迁移(移除含有数据的设备)
[root@desktop144 /]# pvmove /dev/vde1 /dev/vde2 #将vde1中的数据移动到vde2中
/dev/vde1: Moved: 8.8%
/dev/vde1: Moved: 100.0%
[root@desktop144 /]# vgreduce ww /dev/vde1 #将vde1从物理卷组ww中移除
Removed "/dev/vde1" from volume group "ww"
[root@desktop144 /]# pvremove /dev/vde1 #删除物理卷vde1
Labels on physical volume "/dev/vde1" successfully wiped
(5) lvm快照
保护原有数据,提出了快照的概念
[root@desktop144 /]# lvcreate -L 40M -n lv0-backup -s /dev/ww/lv0 #生成一个40m大的快照
Logical volume "lv0-backup" created
[root@desktop144 /]# mount /dev/ww/lv0-backup /www #挂载快照
[root@desktop144 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 6.6G 3.5G 66% /
devtmpfs 459M 0 459M 0% /dev
tmpfs 474M 80K 474M 1% /dev/shm
tmpfs 474M 13M 461M 3% /run
tmpfs 474M 0 474M 0% /sys/fs/cgroup
/dev/mapper/vg0-vo 473M 2.3M 442M 1% /home
/dev/mapper/ww-lv0--backup 477M 1.5M 440M 1% /www
注意:如果截取数据大于40M,就会破坏设备,再次进行挂载快照就会出错
[root@desktop144 /]# dd if=/dev/zero of=/www/file bs=1M count=60
##全部删除还原硬盘
[root@desktop144 /]# lvremove /dev/ww/lv0-backup #删除快照
[root@desktop144 /]# lvremove /dev/ww/lv0 #删除逻辑卷(设备)lv0
[root@desktop144 /]# vgremove ww #删除物理卷组ww
[root@desktop144 /]# pvremove /dev/vde2 #删除物理卷vde2
[root@desktop144 /]# fdisk /dev/vde #删除分区
注意:一定要将所有的物理卷删完以后才能删除分区
2.FTP服务
2.1 定义:简单文件传输协议,是用于在网络上进行传输的一套标准协议。它属于网络传输协议应用层。基于TCP工作,C/S架构。实现ftp协议的应用有:wu-ftpd.protftpd.vsftpd
注意:只要在服务端/var/ftp/pub下的文件,客户端就可以使用ftp服务,cd pub 进行查看,下载ftp服务后,/var/ftp/pub就会自动生成
put:将文件上传到远程服务器上 get:从远程服务器上下载文件
具体操作
在服务端
[root@desktop144 Desktop]# yum install vsftpd -y #下载ftp服务
[root@desktop144 Desktop]# systemctl start vsftpd #开启ftp服务
[root@desktop144 Desktop]# systemctl enable vsftpd #开机自启
[root@desktop144 Desktop]# systemctl stop firewalld.service #关闭防火墙
[root@desktop144 Desktop]# systemctl disable firewalld.service #开机不自启
#关闭selinux
[root@desktop144 Desktop]# vim /etc/selinux/config
SELINUX=disabled #文件关闭,reboot后生效
#命令性关闭selinux 临时
[root@desktop144 Desktop]# setenforce 0 #关闭selinux
在客户端`
[root@server94 Desktop]# yum install lftp -y #下载lftp命令
[root@server94 Desktop]# lftp 172.25.254.144 #匿名用户登陆ftp服务器 登陆到--->/var/ftp
lftp 172.25.254.144:~>
[root@server94 Desktop]# lftp 172.25.254.144 -u student #用户登陆 登陆到--->/home/student(服务端的本地用户student)
Password:
lftp student@172.25.254.144:~>
控制用户登陆 (服务端操作)
[root@desktop144 var]# vim /etc/vsftpd/vsftpd.conf
配置文件内容:
12 anonymous_enable=YES | NO #匿名用户是否可以登陆
16 local_enable=NO #本地(指的是服务端)用户是否可以登陆
[root@desktop144 var]# systemctl restart vsftpd.service
测试:(客户端)
[root@server94 Desktop]# lftp 172.25.254.144 -u student
Password:
lftp student@172.25.254.144:~> ls
ls: Login failed: 530 This FTP server is anonymous only.
对匿名用户的操作 (服务端操作)
cd /var/ftp/pub
[root@desktop144 ftp]# ll -d pub/
drwxr-xr-x 2 root root 17 Jan 23 03:21 pub/
###注意:pub这个目录只对超级用户可写
在客户端测试,直接上传,会报错(550:服务本身的错误)
lftp 172.25.254.144:/pub> put /etc/passwd
put: Access failed: 550 Permission denied. (passwd)
chmod 775 /var/ftp/pub
chgrp ftp /var/ftp/pub
[root@desktop144 ftp]# vim /etc/vsftpd/vsftpd.conf #更改配置文件
配置文件:
29 anon_upload_enable=YES #匿名用户是否可以上传文件
[root@desktop144 var]# systemctl restart vsftpd.service #重启服务
配置文件中的第29行:
##匿名用户下载文件
anon_world_readable_only=NO
##匿名用户建立目录
anon_mkdir_write_enable=YES
##匿名用户是否可以删除和重命名
anon_other_write_enable=YES
##匿名用户默认登陆目录的更改
anon_root=/westos
#匿名用户是否可以上传文件
anon_upload_enable=YES
##匿名用户上传文件权限修改
anon_umask=022
这两者任选一个
##客户端的最大上传速率的控制
anon_max_rate=102400 单位:字节 100K
客户端测试:
dd if=/dev/zero of=/mnt/bigfile bs=1M count=1500
put /mnt/bigfile
##服务最大连接数
max_clients=2 #可以允许2个用户匿名登陆(1个Termianl算一个)
注意:每次更改配置文件后都要重启服务
[root@desktop144 ~]# systemctl restart vsftpd.service
##本地用户家目录修改
local_root=/westos 家目录是一定存在于系统的
注意:
553:文件系统系统过小
500:权限过大
530:认证失败
限制本地用户浏览 系统其他目录
在修改配置文件之前,用户验证登陆的时候在服务指定的家目录里,但是可以随意切换系统目录,这是不安全的
chroot_local_user=YES #所有本地用户被锁定到自己的家目录里面
chmod u-w /home/*
用户黑名单的建立:(本地用户浏览 系统其他目录)
[root@desktop144 ~]# vim /etc/vsftpd/vsftpd.conf #编辑文件配置
配置文件内容:
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
cd /etc/vsftpd
vim chroot_list #在/etc/vsftpd下自己创建chroot_list文件
在该文件内添加用户名
用户白名单的建立:(本地用户浏览 系统其他目录)
[root@desktop144 ~]# vim /etc/vsftpd/vsftpd.conf #编辑文件配置
配置文件内容:
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
cd /etc/vsftpd
vim chroot_list #在/etc/vsftpd下自己创建chroot_list文件
限制本地用户登陆
vim /etc/vsftpd/ftpusers #永久的用户黑名单
vim /etc/vsftpd/user_list #用户临时黑名单
用户白名单的设定(将用户黑名单变成白名单)
[root@desktop144 ~]# vim /etc/vsftpd/vsftpd.conf #编辑文件配置
userlist_deny=NO
##主配置文件参数的设定,/etc/vsftpd/user_list变成用户白名单,只在名单出现的用户可以登陆ftp
ftp虚拟用户的设定
(创建虚拟帐号身份)
cd /etc/vsftpd
vim westosfile (文件名任意)
ftpuser1
123
ftpuser2
123
ftpuser3
#上面的密码是明文的,不安全,要进行加密
#-T:transfer -t:表示转换方式为hash
db_load -T -t hash -f /etc/vsftpd/westosfile /etc/vsftpd/westosfile.db
cd /etc/pam.d
vim westos(任意)
文件内容:
account required pam_userdb.so db=/etc/vsftpd/westosfile
auth required pam_userdb.so db=/etc/vsftpd/westosfile
##account:表示帐号名称 auth表示密码 不分先后顺序的
##required 是通过了用户认证才能进入下一步,然后要去使用pam_userdb.so这个插件来验证账户信息
[root@desktop144 pam.d]# vim /etc/vsftpd/vsftpd.conf
配置文件内容:(在最后一行添加)
pam_service_name=westos
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
local_root=/ftphome/$USER
user_sub_token=$USER
###注意:必须给虚拟用户建立加目录
mkdir /ftphome/ftpuser1/user1dir -p
mkdir /ftphome/ftpuser2/user2dir -p
###更改它们的权限,让用户可以在user1dir可上传
chgrp ftp /ftphome/ -R
chmod 775 /ftphome/ftpuser1/user1dir/
chmod 775 /ftphome/ftpuser2/user2dir/
ftp虚拟用户家目录的独立设定
vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/userconf
cd /etc/vsftpd
mkdir userconf
cd userconf
#虚拟用户的主配置文件(里面写你要给这个用户的权限 注意:在所有用户的这个主配置文件中,你所要给虚拟用户的权限一定要关闭:anon_mkdir_write_enable=NO)
vim ftpuser1
anon_mkdir_write_enable=YES