今天在linux电脑上安装了ftp服务器,中间碰到不少问题,参照各路攻略,修改多次配置后终于完成了服务器搭建
1:安装vsftp服务器
最简答的一步,直接:apt-get install vsftp
安装完成后,查看版本号:
kongcb@cegncn-MS-7D22:~$ vsftpd -v
vsftpd: version 3.0.5
kongcb@cegncn-MS-7D22:~$
这个版本比较新,所以之前很多配置在此并不适用
2:创建用户
参照之前的写的步骤,简单创建一个ftp用户及目录
sudo mkdir /home/cegnsoft/cegnftp
sudo useradd cegnftp –d /home/cegnsoft/cegnftp –s /bin/bash
sudo passwd cegnftp //输入密码
chown cegnftp:cegnftp /home/cegnsoft/cegnftp //更改目录
sudo usermod –aG sudo cegnftp //加入sudo组
3: 配置vsftp配置文件
sudo vim /etc/vsftpd.conf
按照攻略,配置如下项目
# 只针对修改部分说明
use_localtime=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
pam_service_name=vsftpd
secure_chroot_dir=/var/run/vsftpd/empty
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
#配置ftp服务器上传下载文件所在目录
local_root=/home/cegnsoft/cegnftp
配置完成后,增加白名单,修改:/etc/vsftpd.chroot_list
#文件中增加用户名,回车隔开
kongcb
cegnftp
wangy1
jiaoyj
4:问题调试
如上3配置完成后,我的windows电脑上启动一个ftp客户端工具,连接ubuntu的ftp服务。连接正常,上传文件失败,提示:
[18:06:04] 227 Entering Passive Mode (10,13,1,189,95,250).
[18:06:04] STOR /ceems2023041103-file-20231218101158.tgz
[18:06:04] 550 Permission denied.
一般提示这个是ftp服务器上的文件夹没有写权限,打开查看目录权限都ok
kongcb@cegncn-MS-7D22:~$ ls /home/cegnsoft/ -la
total 32
drwxrwxrwx 8 root root 4096 1月 23 16:34 .
drwxr-xr-x 6 root root 4096 1月 23 14:53 ..
drwxrwxrwx 2 cegnftp cegnftp 4096 1月 23 18:50 cegnftp
drwxr-xr-x 2 jianggf jianggf 4096 12月 22 15:02 jianggf
drwxr-xr-x 19 jiaoyj jiaoyj 4096 1月 19 17:52 jiaoyj
drwxrwxrwx 6 kongcb kongcb 4096 1月 23 15:54 kongcb
drwxr-xr-x 5 wangy wangy 4096 1月 23 13:44 wangy
drwxr-xr-x 2 wangy1 wangy1 4096 12月 22 15:17 wangy1
kongcb@cegncn-MS-7D22:~$
那还是配置文件有问题,修改配置:
#增加/开放配置
local_umask=022
allow_writeable_chroot=YES
write_enable=YES
修改后,重启ftp服务:sudo service vsftpd restart
再次使用ftp工具连接就可以上传下载文件了