FTP---安装与配置

一、FTP的安装

#安装
yum install -y vsftpd

#设置开机启动
systemctl enable vsftpd.service

#启动
systemctl start vsftpd.service

#中止
systemctl stop vsftpd.service

#查看状态
systemctl status vsftpd.service

建立FTP使用的用户

useradd -s /sbin/nologin -d /var/www/html ftpuser
passwd ftpuser

参数说明 :
useradd
-d:指定用户登入时的主目录,替换系统默认值/home/<用户名>
-s:指定用户登入后所使用的shell。默认值为/bin/bash。
参考地址:# Linux命令---useraddhtml

passwd 是修改用户密码linux

相关命令:
usermod -s /sbin/nologin ftpuser 修改用户登入后所使用的shell
usermod -d /var/www/html ftpuser 修改用户登入时的主目录
userdel -r ftpuser 删除指定用户 -r 参数是指删除用户所有文件shell

二、配置FTP 

#打开配置文件
vi /etc/vsftpd/vsftpd.conf

这里要关注的几个配置项
1.不容许匿名访问安全

anonymous_enable=NO

2.是否容许使用本地账户进行FTP用户登陆验证bash

local_enable=YES/NO

本地帐号和虚拟帐号区别主要在于可否登陆系统,帐号有权限能够登陆操做系统的为本地帐号,而不能登陆操做系统只能使用某些服务登陆的为虚拟系统。服务器

  1. userlist_enable , userlist_deny 和 名单文件 /etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO

当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:全部出如今名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出如今名单中的用户才会被准许登入(user_list以外的用户都被拒绝登入);ide

参考:vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释测试

按上面得设置,则须要在名单文件 /etc/vsftpd/user_list中添加ftpuser(一行一个用户名),ftpuser才能够登录。阿里云

4.用户不能离开主目录spa

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

chroot_local_user
是否将全部用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不作配置的话,ftp用户是能够向上切换到要目录以外的)
chroot_list_enable
是否启动限制用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_file=/etc/vsftpd/chroot_list
是否限制在主目录下的用户名单,至因而限制名单仍是排除名单,这取决于chroot_local_user的值。

参考:vsftpd 配置:chroot_local_user与chroot_list_enable详解

按上面得设置,则须要在名单文件 /etc/vsftpd/chroot_list中添加ftpuser(一行一个用户名),ftpuser才会被如今在主目录中,不容许离开。

5.用户的主目录写权限
从2.3.5以后,vsftpd加强了安全检查,若是用户被限定在了其主目录下,则该用户的主目录不能再具备写权限了!若是检查发现还有写权限,就会报该错误。

要修复这个错误,你能够在vsftpd的配置文件中增长下列项:

allow_writeable_chroot=YES

还有一种方法:能够用命令 chmod a-w /var/www/html 去除用户主目录的写权限

6.基本配置以上选项便可了,也能够查看详细配置介绍

常见问题

1.500 OOPS: vsftpd: refusing to run with writable root inside chroot() 错误,解决请参考配置第5项;

2.530 Login incorrect错误 :

  • 用户没权限,先查看 userlist_enable userlist_deny 得设置也就是配置第3项;
  • 系统环境默认/etc/shells文件有没有/sbin/nologin这个项,没有请添加上,由于这里配置这一项为用户登录后使用的shell;
  • 确保FTP用户密码正确,能够修改密码后测试;
  • 服务器防火墙须要开放21端口(阿里云主机记得控制台也须要开放端口);
  • Selinux缘由,能够临时关闭setenforce 0,发现能够正常链接了,修改/etc/sysconfig/selinux文件能够永久地禁用它。将文件中 SELINUX=enforcing 修改成:SELINUX=disabled;
相关文章
相关标签/搜索