前言
今天才发觉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
以下三种,需要详细说明(重中之重):
#是否将所有用户锁定在主目录,YES为启用 NO禁用.(包括注释掉也为禁用)
chroot_local_user=YES#是否启动锁定用户的名单 YES为启用 NO禁用(包括注释掉也为禁用)
chroot_list_enable=YES#禁用的列表名单 格式为一行一个用户, 如果名单里面有一个ftpuser的用户, 则ftpuser用户不会锁定在主目录,用户将可以自由切换目录.
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.