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>