Linux 源代码 安装 vsftpd 3.0.2

Linux 源代码 安装 vsftpd 3.0.2 by csc 2014-08-21










wget  http://url.cn/UKvdjS  下载软件包


如果系统已经安装vsftpd,删除它
yum remove vsftpd


------------------------------------------------
#安装前准备,如果系统有该目录,则不需要建立。


mkdir /usr/share/empty
useradd -s /sbin/nologin -d /var/ftp ftp
useradd nobody
chown root:root /var/ftp
chmod og-w /var/ftp




-------------------------------------------------
tar zxvf vsftpd 3.0.2.tar.gz
#解压
cd vsftpd 3.0.2
#进入目录
Cat 下builddefs.h 文件,看它默认都启用了什么功能,更具体的可以more INSTALL(查看帮助文件)
undef 为不启用
Define为启用


#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#define VSF_BUILD_PAM
#undef VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */
-----------------------------------------
#编码解决步骤


Vi opts.c
if (str_equal_text(&p_sess->ftp_arg_str,"UTF8 ON")) 更改成
if (str_equal_text(&p_sess->ftp_arg_str,"DISABLE UTF8 ON")) 
注意:安装之前,如果系统为64位,需要更改vsf_findlibs.sh文件库中lib 路径,命令如下:
sed -i 's/lib\//lib64\//g' vsf_findlibs.sh
----------------------------------------------
 编译安装 :
Make && make install 


进程中没有提示什么错误信息,表示已经成功安装


复制些文件:
cp vsftpd.conf /etc            #配置主文件     
cp RedHat/vsftpd.pam /etc/pam.d/ftp   #PAM 认证文件


############################
修改 vsftpd.conf


#不让匿名用户使用 
anonymous_enable=No 


#本地用户可用 
local_enable=YES 


#可用写操作 
write_enable=YES 


#不需要显示某目录下文件信息 
#dirmessage_enable=YES 


#加点banner提示 
ftpd_banner=Welcome to  FTP service. #连接的时候 不显示版本号了
 
#FTP服务器最大承载用户 
max_clients=100 


我的初始配置文件:
 cat /etc/vsftpd.conf |grep -v ^#


anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES


#号之内的可以不用添加
############################################################
#chroot_local_user=YES   # 一般都需要注释掉。备注:打开后,全部用户被限制家目录,相反,下面配置的/etc/vsftpd.chroot_list,反而不限制,
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list   #限制用户在家目录
allow_writeable_chroot=YES    #新版本3.0.2 限制家目录,需要加上才能生效,
                              #否则报错 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
###########################################################                              
                              
listen=YES
#listen_port=8080    #更改监听端口9000 默认是21


userlist_enable=YES
vi /etc/vsftpd.user_list    记录在userlist_file选项指定文件中的用户将无法login
root
bin
daemon
adm
lp
sync
shutdown
halt
mail
news
uucp
operator
games
nobody








系统自带的参数,可以不需要,有的话请注释掉:
#pam_service_name=vsftpd
#userlist_enable=YES
#tcp_wrappers=YES
#








#####################
64位的系统注意修改如下:
sed -i 's/lib\//lib64\//g' /etc/pam.d/ftp


[root@whsdweb RedHat]# vi  /etc/pam.d/ftp 
#%PAM-1.0
auth       required     /lib64/security/pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed
auth       required     /lib64/security/pam_unix.so shadow nullok
auth       required     /lib64/security/pam_shells.so
account    required     /lib64/security/pam_unix.so
session    required     /lib64/security/pam_unix.so
~






--------------------------------
启动vsftpd 
/usr/local/sbin/vsftpd &
查看下
 netstat -tnl | grep 21
 
 重启命令:
 #killall vsftpd
 #/usr/local/sbin/vsftpd &

你可能感兴趣的:(vsftpd,3.0.2)