首页 > 代码库 > Ubuntu(linux)下的FTP服务器简单搭建

Ubuntu(linux)下的FTP服务器简单搭建

前言

? ? ? ?今天才发觉FTP服务器超级好用.省却了数据线和恼人的局域网配置smb.当然也有一些缺点.比如只能客户端在服务器上读写.服务器不能在客户端上读写.

一 vsftpd安装

? ? ? ubuntu下终端使用命令安装:sudo apt-get install vsftpd

二 vsftpd配置

	配置文件默认路径是/etc/vsftpd.conf,下面我把自己用到的配置文件的内容说明下:
	打开监听
	listen=YES
	是否允许匿名访问
	anonymous_enable=NO
	是否允许本地用户登录
	local_enable=YES
	是否允许登录用户支持文件写入(写权限)
	write_enable=YES
	本地用户新增文件的umask值,决定上传文件的权限.
	该算法借鉴了unix的权限算法.(umask 022,创建的默认文件将不屏蔽所属用户的权限,屏蔽同组用户的w权限,屏蔽其他用户的w权限,于是文件的默认权限为755,更简便的方法是用777减去022,得到755)
	local_umask=022
	切换目录时使用该目录下的.message显示消息
	dirmessage_enable=YES
	是否使用主机时间
	use_localtime=YES
	设置为yes时候,记录上传下载
	xferlog_enable=YES
	主动连线的端口号
	connect_from_port_20=YES
	日志路径
	xferlog_file=/var/log/vsftpd.log
	日志格式
	xferlog_std_format=YES
	欢迎信息
	ftpd_banner=Welcome to blah FTP service.
        默认
secure_chroot_dir=/var/run/vsftpd/empty

vsftpd的身份认证方式
pam_service_name=vsftpd

默认
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

默认
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

以下三种,需要详细说明(重中之重):
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list

如果设置为

chroot_local_user=YES
chroot_list_enable=YES(这行可以没有, 也可以有)
chroot_list_file=/etc/vsftpd.chroot_list

那么, 凡是加在文件vsftpd.chroot_list中的用户都是不受限止的用户
即可以浏览其主目录的上级目录。

所以, 如果不希望某用户能够浏览其主目录上级目录中的内容,可以如上设置, 然后在文件vsftpd.chroot_list中不添加该用户即可(此时, 在该文件中的用户都是可以浏览其主目录之外的目录的).

或者, 设置如下

chroot_local_user=NO
chroot_list_enable=YES(这行必须要有, 否则文件vsftpd.chroot_list不会起作用)
chroot_list_file=/etc/vsftpd.chroot_list

然后把所有不希望有这种浏览其主目录之上的各目录权限的用户添加到文件vsftpd.chroot_list,如果没有该文件,自行创建(此时, 在该文件中的用户都是不可以浏览其主目录之外的目录的)中即可(一行一个用户名).

参考博客:http://blog.csdn.net/wangqiaoshi/article/details/35252715

三 忠告

      大家在配置更改配置文件后一定要重启ftp服务器.
分别是重启,启动,停止操作.
service vsftpd restart|start|stop

四 常见错误

为了避免一个安全漏洞,从 vsftpd 2.3.5 开始,chroot 目录必须不可写。(

500 OOPS:?vsftpd: refusing to run with writable root inside chroot()

)使用命令:

# chmod a-w /home/user
user为需要访问ftp服务器的用户名,我的为/home/rish.

Ubuntu(linux)下的FTP服务器简单搭建