写在前面:
vsftpd 是“very secure FTP daemon”的缩写,安全性是它的一个最大的特点。vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux、BSD、Solaris、 HP-UNIX等系统上面,是一个完全免费的、开放源代码的ftp服务器软件,支持很多其他的 FTP 服务器所不支持的特征。比如:非常高的安全性需求、带宽限制、良好的可伸缩性、可创建虚拟用户、支持IPv6、速率高等。
安装:
sudo apt-get install vsftpd
配置:
vim /etc/vsftpd.conf #这些设置系统默认是开启的,可以不管 listen=NO listen_ipv6=YES dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES #下面的就要自定义设置了,建议系统默认的不管,然后复制下面的 #是否允许匿名访问,NO为不允许 anonymous_enable=NO #是否允许本地用户访问,就是linux本机中存在的用户,YES允许 local_enable=YES #是否开启写模式,YES为开启 write_enable=YES #新建文件权限,一般设置为022,那么新建后的文件的权限就是777-022=755 local_umask=022 ####umask值与权限的对照表: ####umask 文件 目录 ####-------------------- #### 0 6 7 #### 1 6 6 #### 2 4 5 #### 3 4 4 #### 4 2 3 #### 5 2 2 #### 6 0 1 #### 7 0 0 ####-------------------- #是否启动userlist为通过模式,YES的话只有存在于userlist文件中的用户才能登录ftp(可以理解为userlist是一个白名单),NO的话,白名单失效,和下面一个参数配合使用 userlist_enable=YES #是否启动userlist为禁止模式,YES表示在userlist中的用户禁止登录ftp(黑名单),NO表示黑名单失效,我们已经让userlist作为一个白名单,所以无需使用黑名单功能 userlist_deny=NO #指定哪个文件作为userlist文件,我们稍后编辑这个文件 userlist_file=/etc/vsftpd.user_list #是否限制本地所有用户切换根目录的权限,YES为开启限制,即登录后的用户不能访问ftp根目录以外的目录,当然要限制啦 chroot_local_user=YES #是否启动限制用户的名单list为允许模式,上面的YES限制了所有用户,可以用这个名单作为黑名单,作为禁止访问ftp根目录以外 chroot_list_enable=YES #设置哪个文件是list文件,里面的用户将受限制无法访问ftp根目录以外的目录 chroot_list_file=/etc/vsftpd.chroot_list #是否开启写模式,开启后可以进行创建文件夹等写入操作 allow_writeable_chroot=YES #设置ftp根目录的位置,这个文件我们稍后自己创建 local_root=/目录位置
重启:
sudo /etc/init.d/vsftpd restart
添加用户:
#将将用户目录设置为我们上面的ftp根目录 sudo useradd -d /目录位置 用户名字 #设置用户密码 sudo passwd 用户名字
限定用户只能访问自己的目录,无法返回上层及进入其它目录:
修改配置文件:/etc/vsftpd/vsftpd.conf
sudo vi /etc/vsftpd.conf
去掉下面两行的注释:
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
在/etc/vsftpd下创建chroot_list文件:
touch chroot_list
加入需要限制的用户名:
vi /etc/vsftpd/chroot_list
保存
:wq
重启服务(每次更改配置后必须重启才能生效):
sudo /etc/init.d/vsftpd restart
其它命令:
#关闭 sudo /etc/init.d/vsftpd stop #开启 sudo /etc/init.d/vsftpd start #查看当前用户 vi /etc/passwd
关于500错误的解决思路:
出现500的原因是你的主目录设置了可写权限,故无法通过安全验证,所以无法正常登录。
附:
关于文件及文件夹权限
读:r 写:w 执行:x 所有者 同组用户 其它用户 rwx rwx rwx 翻译:所有者同组用户其它用户都可读、写和执行 二进制: 111 111 111 十进制: 7 7 7 所有者 同组用户 其它用户 rwx - - - - - - 翻译:只有所有者有读、写和执行的权限 二进制: 111 000 000 十进制: 7 0 0