Ubuntu下vsftp安装和配置

转载自:http://www.metsky.com/archives/551.html  

vsftpd是Linux系统下非常常用的一款FTP程序,天缘也是事隔多年又用起这个软件,安全及性能不在话下,当然前提是要摸索着如何配置,本文汇总vsftp常用的安装和配置命令,均是入门级的,就像天缘博客一样。(注:以下命令均在终端中输入)

一、安装、重装、卸载vsftp

全新安装:apt-get install vsftpd

重新安装:apt-get --reinstall install vsftpd

卸载并清除配置文件:apt-get -purge remove vsftpd

关于如何卸载最干净问题,每种软件在安装时可能包含多个安装包模块,所以单纯的remove主程序包一般来讲肯定不干净,就像下文的:

http://www.cloudfly.info/archives/33

彻底卸载apache和mysql方法,按理说对目前的版本来讲该清的清的差不多了,但是只要版本已升级,包也变了、个数也变了,恐怕又不干净了,目前还是慢慢试吧(以后这些程序应该自带卸载包设计就好了,像WIN平台软件那样自己清理自己才是正道)。

安装后vsftp默认会创建一个名为ftp的用户,用户目录在/srv/ftp,好像匿名用户也会使用这个设置。

二、启动、停止vsftp

启动vsftp:

service vsftpd start

或指定路径,下同(注意:/etc/init.d/路径可能不同):

/etc/init.d/vsftpd start

重启

/etc/init.d/vsftpd restart

停止vsftp:

service vsftpd stop

/etc/init.d/vsftpd stop

三、创建ftp用户组和目录

1、创建FTP用户组ftp-users

groupadd ftp-users

2、创建用户组目录ftp-docs

mkdir /home/ftp-docs

注意,这时还未指定跟ftp-users关联。

3、修改权限

chmod 750 /home/ftp-docs

750组只能读不能写,要组能写,请改成770或760。

4、指定文件夹归属用户和用户组

chown root:ftp-users /home/ftp-docs

这时,如果远程用户属于ftp-users组,则会共享该目录。

5、添加FTP用户并未他们设置缺省目录

useradd -g ftp-users -d /home/ftp-docs user1

useradd -g ftp-users -d /home/ftp-docs user2

passwd user1

passwd user2

6、拷贝额外那就到/home/ftp-docs目录

7、修改/home/ftp-docs目录下文件权限,对该组用户只读

chown root:ftp-users /home/ftp-docs/*

chmod 740 /home/ftp-docs/*

到这里,用户就可以通过FTP客户端登入服务器并下载文件了。当然了,深入一点,还有下文的VSFTP配置、通讯端口以及防火墙设置等问题。每个环节都可能造成连接访问问题。

四、vsftp配置

vsftp配置是出于安全和功能两种考虑需要而进行的,一般涉及的配置有:

  • 匿名处理问题
  • 上传下载权限问题
  • 账户登录处理问题
  • 安全登录问题
  • 限速问题
  • ....

等等。主要修改/etc/vsftpd.conf这个文件(没发现这个文件?看看有没/etc/vsftpd/vsftpd.conf...)。注意,修改VSFTP配置之后需要重启一下其服务。

常用几个:

1、下面三个是针对匿名用户设置的,一般均关闭掉(#注释)。

#anonymous_enable=YES

#anon_upload_enable=YES

#anon_mkdir_write_enable=YES

2、下面这个控制用户上传许可:

write_enable=YES//该选项一般要打开,否则用户无法上传文件

3、下面这个限制用户在其Home目录,不能无限制的“到处逛”:

chroot_local_user=YES//该命令把用户限制在自己的Home目录,这个选项一定要开启

4、如果权限都修改完了,但是发现还是无法正常浏览目录列表(报告打开目录失败、创建文件失败),注意以下两种情况:

A. 该用户文件夹的上级文件夹权限(有关系),查看其Owner及group情况,可以改成755/772/777测试。

B. 注意一下是否存在Selinux设置问题(天缘自己在RedHat上遇到过):

位置:/etc/selinux/config

查看:

# This file controls the state of SELinux on the system.

# SELINUX= can take one of these three values:

#     enforcing - SELinux security policy is enforced.

#     permissive - SELinux prints warnings instead of enforcing.

#     disabled - No SELinux policy is loaded.

SELINUX=disabled

# SELINUXTYPE= can take one of these two values:

#     targeted - Targeted processes are protected,

#     mls - Multi Level Security protection.

SELINUXTYPE=targeted

要关闭这个SELINUX选项。如果为enforcing或者premissive,请修改为disabled,然后重启机子。

查看系统当前SELINUX选项命令如下:

sestatus

原文地址:https://www.cnblogs.com/longbiao831/p/4556272.html