linux 安装 FTP服务

一,VSFTP服务器概述

FTP(File Transfer Protocol )是在互联网上提供文件存储和访问的计算机,他们依照FTP协议提供服务VSFTP(Very Secure FTP),是一个安全,高速,稳定的FTP服务器
模式:C/S模式
端口:vim /etc/services
20:传数据    21:传指令

二、工作流程

FTP会话包含了两个通道,控制通道和数据通道,FTP的工作有两种方式,一种是主动模式,一种是被动模式。以FTPserver为参照物,主动模式,服务器主动连接客户端传输,被动模式,等待客户端的连接。

 

 三、安装VSFTP

1.查看是否已安装,yum可安装ftp服务器端(vsftpd)、客户端(lftp)

# rpm -qa | grep vsftp 
#
# yum install -y vsftpd lftp

2.配置文件

# ll /etc/vsftpd/
total 20
-rw-------. 1 root root 125 Oct 31 2018 ftpusers       #黑名单,用于指定哪些用户不能访问FTP服务器
-rw-------. 1 root root 361 Oct 31 2018 user_list          #白名单,指定允许使用vsftpd的用户列表文件  
-rw-------. 1 root root 5116 Oct 31 2018 vsftpd.conf       #主配置文件
-rwxr--r--. 1 root root 338 Oct 31 2018 vsftpd_conf_migrate.sh    #是vsftp操作的一些变量和设置脚本

3.启动

/var/ftp : 默认情况下匿名用户的根目录

# ll /var/ftp/
total 0
drwxr-xr-x. 2 root root 6 Oct 31 2018 pub

# systemctl start vsftpd
# systemctl enable vsftpd
Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

# netstat -lantup | grep ftp
tcp6 0 0 :::21 :::* LISTEN 3211/vsftpd

(没有数据传输,所以20端口没活动)

4.配置

 

 建立用户

# useradd -s /sbin/nologin team1
# useradd -s /sbin/nologin team2
# echo "111" | passwd --stdin team1
Changing password for user team1.
passwd: all authentication tokens updated successfully.
# echo "111" | passwd --stdin team2
Changing password for user team2.
passwd: all authentication tokens updated successfully.

更改配置

# cp /etc/vsftpd/vsftpd.conf   /etc/vsftpd/vsftpd.conf.bak

# vim /etc/vsftpd/vsftpd.conf

chroot_list_enable=YES
local_root=/var/www/html
chroot_list_file=/etc/vsftpd/chroot_list
allow_writeable_chroot=yes

# vim /etc/vsftpd/chroot_list
team1
team2

创建文件

# mkdir -p /var/www/html
# ll -d /var/www/html/
drwxr-xr-x. 2 root root 6 Sep 28 00:54 /var/www/html/
#
# chmod -R o+w /var/www/html/
# ll -d /var/www/html/
drwxr-xrwx. 2 root root 6 Sep 28 00:54 /var/www/html/

重启服务使配置生效

# systemctl restart vsftpd

# systemctl stop firewalld

# setenforce 0

测试

# ls
download project
#
# ftp 192.168.10.53
Connected to 192.168.10.53 (192.168.10.53).
220 (vsFTPd 3.0.2)
Name (192.168.10.53:root): team2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> bin
200 Switching to Binary mode.
ftp> put project
local: project remote: project
227 Entering Passive Mode (192,168,10,53,29,240).
150 Ok to send data.
226 Transfer complete.
2390 bytes sent in 0.0108 secs (221.52 Kbytes/sec)
ftp>

# cd /var/www/html/
# ls
project

传输成功


#问题

ftp登陆报错530 Login incorrect. Login failed.

# ftp 192.168.10.53
Connected to 192.168.10.53 (192.168.10.53).
220 (vsFTPd 3.0.2)
Name (192.168.10.53:root): team2
331 Please specify the password.
Password:
530 Login incorrect.
Login failed.
ftp> exit

vsftp服务是运行的,但是用户输入正确的密码登录会报530的错误,无法登录成功。

1、查看ftp登录的账户主目录和登录shell对应的是

# tail -n 3 /etc/passwd
svnuser:x:1000:1000::/home/svnuser:/bin/bash
team1:x:1001:1001::/home/team1:/sbin/nologin
team2:x:1002:1002::/home/team2:/sbin/nologin

2、查看/etc/shells是否有ftp用户的主目录和登录的shell,没有进行添加,保存退出。重新尝试登录连接FTP

# vim /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/sbin/nologin

# ftp 192.168.10.53
Connected to 192.168.10.53 (192.168.10.53).
220 (vsFTPd 3.0.2)
Name (192.168.10.53:root): team2
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

原文地址:https://www.cnblogs.com/zwj-linux/p/11609765.html