ftp服务

本文详细介绍了如何在Linux系统上安装、配置并使用VSFTPD服务。从安装VSFTPD开始,逐步讲解了配置匿名用户、虚拟用户以及本地用户的全过程。通过具体的命令行操作和配置文件修改,展示了如何开启服务、调整防火墙设置、设置用户权限等关键步骤。

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

1. ftp安装

[root@localhost ~]# yum -y install vsftpd
已加载插件:product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
正在解决依赖关系
--> 正在检查事务
---> 软件包 vsftpd.x86_64.0.3.0.2-22.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=====================================================================================
 Package            架构               版本                     源              大小
=====================================================================================
正在安装:
 vsftpd             x86_64             3.0.2-22.el7             lw             169 k

事务概要
=====================================================================================
安装  1 软件包

总下载量:169 k
安装大小:348 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : vsftpd-3.0.2-22.el7.x86_64                                       1/1 
  验证中      : vsftpd-3.0.2-22.el7.x86_64                                       1/1 

已安装:
  vsftpd.x86_64 0:3.0.2-22.el7                                                       

完毕!
[root@localhost ~]# systemctl start vsftpd

2. 配置匿名用户ftp

2.1 启动ftp服务

[root@localhost ~]# systemctl start vsftpd
[root@localhost vsftpd]# systemctl restart vsftpd
[root@localhost vsftpd]# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
[root@localhost vsftpd]# ss -nalt
State       Recv-Q Send-Q Local Address:Port               Peer Address:Port              
LISTEN      0      128            *:22                         *:*                  
LISTEN      0      100    127.0.0.1:25                         *:*                  
LISTEN      0      32            :::21                        :::*                  
LISTEN      0      128           :::22                        :::*                  
LISTEN      0      100          ::1:25                        :::* 

2.2 关闭防火墙

[root@localhost pub]# systemctl stop firewalld
[root@localhost pub]# setenforce 0

2.3 对配置文件进行配置

[root@localhost pub]# vim /etc/vsftpd/vsftpd.conf 
anonymous_enable=YES
anon_umask=022
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost pub]# systemctl restart vsftpd

2.4 验证

  • lftp验证
[root@localhost ~]# lftp -u ftp 192.168.110.21
口令: 
lftp ftp@192.168.110.21:~>               
lftp ftp@192.168.110.21:~> ls
drwxrwxrwx    3 0        0              39 Feb 18 06:59 pub
lftp ftp@192.168.110.21:/> cd /pub/
lftp ftp@192.168.110.21:/pub> ls
-rw-------    1 14       50              0 Feb 18 06:58 111
-rw-r--r--    1 0        0               0 Feb 18 06:50 123
drwxr-xr-x    2 0        0               6 Feb 18 06:49 aaa
lftp ftp@192.168.110.21:/pub> mkdir 222
mkdir 成功, 建立 `222'
lftp ftp@192.168.110.21:/pub> ls
-rw-------    1 14       50              0 Feb 18 06:58 111
-rw-r--r--    1 0        0               0 Feb 18 06:50 123
drwxr-xr-x    2 14       50              6 Feb 18 07:11 222
drwxr-xr-x    2 0        0               6 Feb 18 06:49 aaa
lftp ftp@192.168.110.21:/pub> rm -f 111
rm 成功, 删除 `111'
lftp ftp@192.168.110.21:/pub> ls
-rw-r--r--    1 0        0               0 Feb 18 06:50 123
drwxr-xr-x    2 14       50              6 Feb 18 07:11 222
drwxr-xr-x    2 0        0               6 Feb 18 06:49 aaa
lftp ftp@192.168.110.21:/pub> get 123
lftp ftp@192.168.110.21:/pub> exit
[root@localhost ~]# ls
123              anaconda-ks.cfg  
  • 图形化界面验证
    在这里插入图片描述在这里插入图片描述

3. 配置虚拟用户ftp

3.1 建立虚拟FTP用户数据库文件

[root@localhost ~]# yum -y install db4*
[root@localhost ~]# cat /etc/vsftpd/user.list 
tom
123
jack
456
lw
789
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/user.list /etc/vsftpd/user.db
[root@localhost ~]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user.db  user_list  user.list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# vim user.db 
[root@localhost vsftpd]# chmod 600 /etc/vsftpd/user.*
[root@localhost vsftpd]# ll
总用量 36
-rw-------. 1 root root   125 10月 31 03:45 ftpusers
-rw-------. 1 root root 12288 2月  18 15:32 user.db
-rw-------. 1 root root   361 10月 31 03:45 user_list
-rw-------. 1 root root    24 2月  18 15:29 user.list
-rw-------. 1 root root  5142 2月  18 14:54 vsftpd.conf
-rwxr--r--. 1 root root   338 10月 31 03:45 vsftpd_conf_migrate.sh

3.2 创建FTP根目录及虚拟用户映射的系统用户

[root@localhost vsftpd]# useradd -d /opt/vftp -s /sbin/nologin vftp
[root@localhost vsftpd]# cd /opt/
[root@localhost opt]# ls
vftp
[root@localhost opt]# chmod 755 /opt/vftp/
[root@localhost opt]# ll
总用量 0
drwxr-xr-x. 2 vftp vftp 62 2月  18 15:35 vftp

3.3 建立支持虚拟用户的PAM认证文件

[root@localhost opt]# cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
[root@localhost opt]# vim /etc/pam.d/vsftpd
[root@localhost opt]# cat /etc/pam.d/vsftpd
#%PAM-1.0
auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user

3.4 在vsftpd.conf文件中添加支持配置

[root@localhost user_config]# vim /etc/vsftpd/vsftpd.conf 
guest_enable=YES
guest_username=vftp
user_config_dir=/etc/vsftpd/user_config
allow_writeable_chroot=YES
[root@localhost opt]# cd /etc/vsftpd/
[root@localhost vsftpd]# ls
ftpusers  user.db  user_list  user.list  vsftpd.conf  vsftpd_conf_migrate.sh
[root@localhost vsftpd]# mkdir user_config

3.5 为虚拟用户设置不同的权限

[root@localhost vsftpd]# cd user_config/
[root@localhost user_config]# ls
[root@localhost user_config]# touch tom
[root@localhost user_config]# vim tom
[root@localhost user_config]# cat tom
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
[root@localhost user_config]# touch jack
[root@localhost user_config]# ll
总用量 4
-rw-r--r--. 1 root root  0 2月  18 15:57 jack
-rw-r--r--. 1 root root 79 2月  18 15:56 tom
[root@localhost user_config]# systemctl restart vsftpd

3.6 验证

[root@localhost user_config]# cd /opt/vftp/
[root@localhost vftp]# ls
[root@localhost vftp]# touch aaa
[root@localhost vftp]# mkdir 456
[root@localhost vftp]# ll
总用量 0
drwxr-xr-x. 2 root root 6 2月  18 16:02 456
-rw-r--r--. 1 root root 0 2月  18 16:02 aaa
  • 图形化界面验证

tom
在这里插入图片描述在这里插入图片描述jack
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • lftp验证

tom

[root@localhost ~]# lftp -u tom 192.168.110.20
口令: 
lftp tom@192.168.110.20:~> ls            
-rw-------    1 1000     1000            0 Feb 18 08:10 111
-rw-------    1 1000     1000            0 Feb 18 08:07 123
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-------    1 1000     1000          197 Feb 18 08:07 program.sh
lftp tom@192.168.110.20:/> mkdir 222
mkdir 成功, 建立 `222'            
lftp tom@192.168.110.20:/> ls
-rw-------    1 1000     1000            0 Feb 18 08:10 111
-rw-------    1 1000     1000            0 Feb 18 08:07 123
drwx------    2 1000     1000            6 Feb 18 08:15 222
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-------    1 1000     1000          197 Feb 18 08:07 program.sh
lftp tom@192.168.110.20:/> rm -rf 111 222
rm ok, 2 files removed 
lftp tom@192.168.110.20:/> ls
-rw-------    1 1000     1000            0 Feb 18 08:07 123
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-------    1 1000     1000          197 Feb 18 08:07 program.sh
lftp tom@192.168.110.20:/> get 123
lftp tom@192.168.110.20:/> exit   
[root@localhost opt]# ls
123
lftp tom@192.168.110.20:~> put anaconda-ks.cfg
1451 bytes transferred        
lftp tom@192.168.110.20:/> ls
-rw-r--r--    1 1000     1000            0 Feb 18 08:07 123
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-r--r--    1 1000     1000         1451 Feb 18 08:24 anaconda-ks.cfg
-rw-r--r--    1 1000     1000          197 Feb 18 08:07 program.sh

jack

[root@localhost ~]# lftp -u jack 192.168.110.20
口令: 
lftp jack@192.168.110.20:~> ls           
-rw-r--r--    1 1000     1000            0 Feb 18 08:07 123
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-r--r--    1 1000     1000         1451 Feb 18 08:24 anaconda-ks.cfg
-rw-r--r--    1 1000     1000          197 Feb 18 08:07 program.sh
lftp jack@192.168.110.20:/> get 123 
lftp jack@192.168.110.20:/> exit
[root@localhost ~]# ls
123  anaconda-ks.cfg
lftp jack@192.168.110.20:~> mkdir 111
mkdir: Access failed: 550 Permission denied. (111)
lftp jack@192.168.110.20:~> put 789      
put: Access failed: 550 Permission denied. (789)
lftp jack@192.168.110.20:/> ls
-rw-r--r--    1 1000     1000            0 Feb 18 08:07 123
drwxr-xr-x    2 0        0               6 Feb 18 08:02 456
-rw-r--r--    1 1000     1000         1451 Feb 18 08:24 anaconda-ks.cfg
-rw-r--r--    1 1000     1000          197 Feb 18 08:07 program.sh

4. 配置本地用户ftp

[root@localhost ~]# useradd 456
[root@localhost ~]# passwd 456

![在在这里插入图片描述加粗样式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值