参考地址:
文件:vsftpd-2.3.2.tar.gz
首先安装vsftpd:
cd /opt/software
tar -zxvf vsftpd-2.3.2.tar.gz
cd vsftpd-2.3.2
修改配置文件
vi builddefs.h
/********************************************
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
***************************************************/
编译
make
检查是否完成编译
ls -l vsftpd
-rwxr-xr-x 1 root root 84712 Jun 6 18:56 vsftpd //可执行程序已被编译成功
创建必要的帐号,目录:
useradd nobody
mkdir /usr/share/empty
mkdir /var/ftp
useradd -d /var/ftp ftp
chown root:root /var/ftp
chmod og-w /var/ftp
如果已存在,则不用管继续。
安装vsftp配置文件,可执行程序,man等:
install -m 755 vsftpd /usr/local/sbin/vsftpd
install -m 644 vsftpd.8 /usr/share/man/man8
install -m 644 vsftpd.conf.5 /usr/share/man/man5
install -m 644 vsftpd.conf /etc/vsftpd.conf
安装完成
修改vsftpd配置文件
vi /etc/vsftpd.conf
以下项修改为:
Write_enable = yes
local_enable = yes
如果还允许匿名登录则anonymous_enable=yes ;一般匿名用户是不准上传和修改的权限的。
添加
listen_port=21
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
listen=YES的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它
(vsftpd推荐使用standalone方式),注意事项请参看匿名用户的配置。
启动:/usr/local/sbin/vsftpd /etc/vsftpd.conf &
然后添加vsftpd用户!
参考文档:hi.baidu.com/lssbing/blog/item/bae673506cc330571138c233.html
#mkdir /opt/srsman
//首先创建好目录
# adduser -d /opt/srsman -g ftp -s /sbin/nologin srsman //-s
/sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/opt/srsman
# passwd srsman
Changing password for user beinan.//接下来会出现让你设置新的密码
New password:
Retype new password:
passwd: all authentication tokens updated successfully
限制用户目录,不得改变目录到上级
修改/etc/vsftpd/vsftpd.conf
将这两行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
注释去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件: /etc/vsftpd/chroot_list
内容写需要限制的用户名:
srsman
重新启动vsftpd
============================================
可能出现的错误。
一、500 OOPS: could not bind listening IPv4 socket、
chkconfig vsftpd --level 3 off
二、500 OOPS: vsftpd: refusing to run with writable anonymous root
这表示ftp用户的家目录的权限不对,应该改过才对;
[root@localhost ~]# more /etc/passwd |grep ftp
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
修正这个错误,应该用下面的办法;
[root@localhost ~]# chown root:root /var/ftp
[root@localhost ~]# chmod 755 /var/ftp
三、Socket链接超时
[右] 227 Entering Passive Mode (192,168,1,218,62,93).
[右] 正在打开数据连接 IP: 192.168.1.218 端口: 15965
[右] 数据 Socket 错误: 无法连接主机
[右] 列表错误
[右] PASV 模式失败, 尝试 PORT 模式。
答:经常登录各种FTP服务器,会遇到socket错误,几种目前常用FTP软件的解决办法如下:
★Cute FTP 3.5英文版:FTP—>Settings—>Options—>Firewall,将“PASV mode”前复选框中的打勾去掉。
★Cute FTP3.5中文版:FTP—>设置—>选项—>防火墙,“PASV方式(A)”前复选框中的打勾去掉。
★Cute FTP4.0中文版:右击你所建立的ftp站点—>选择属性(properties)—>去掉"use PASV mod" 选择项
★Cute FTP Pro2.0中文版:编辑—>全局设置—>连接—>连接类型,“PASV/PORT”下拉选项菜单选择PORT。
★Leap FTP2.7.2:Sites—>Site Manager—>Advanced,将“Use PASV mode”前复选框中的打勾去掉。
★flashfxp : 选项->参数->代理->去掉“使用被动模式”
★flashget : 选项->参数->代理服务器->编辑->将“Use PASV mode”前复选框中的打勾去掉。
一般出现此类问题的原因是客户端网络出口与服务器端防火墙的端口设置冲突造成的。
所以对于其他软件只要不选择PASV为连接类型,一般都可以解决这类问题了
四、用户成功登陆却不能正常上传文件
这是目标文件夹权限不够的问题。修改权限为777则好了。
chmod 777 /xxx/xxx/