linux下LVM(动态管理卷)FTP服务

本文介绍了Linux下的LVM(Logical Volume Manager),详细阐述了如何建立和管理逻辑卷,包括热拉伸、缩减、数据迁移和快照。同时,文章也详细讲解了FTP服务,包括其定义、工作原理、用户管理和权限控制,以及如何设置虚拟用户和独立的家目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值