Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1316556
  • 博文数量: 161
  • 博客积分: 10192
  • 博客等级: 上将
  • 技术积分: 2165
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-27 17:09
文章分类

全部博文(161)

文章存档

2012年(2)

2011年(13)

2010年(137)

2009年(5)

2008年(4)

我的朋友

分类: LINUX

2010-07-21 13:51:22

(1)编译安装VSFTPD,2.0.3版本。
# cd /home/xuchen/vsftpd-2.0.3  //进入vsftpd-2.0.3的源代码目录
# make clean  //清除编译环境
# vi builddefs.h  \\继续编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H
#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM 将undef改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL,和匿名用户形式是一样的。 
#define VSF_BUILD_SSL
#endif /* VSF_BUILDDEFS_H */

# make  //直接在vsftpd-2.0.3里用make编译
# ls -l vsftpd
-rwxr-xr-x  1 root root 86088 Jun  6 22:26 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
请记住,如果你不想让用户在本地登陆,那么你需要把他的登陆SHELL设置成/sbin/nologin,比如以上的 nobody和ftp我就设置成/sbin/nologin

安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd-pam
# 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-pam.conf
这样就安装完成了,那么我们开始进行简单的配置

(2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如
# vi /home/logins.txt
test11
123456
test22
123456
(3)建立数据库文件并设置文件属性
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
# chmod 600 /etc/vsftpd_login.db
(4)建立认证文件
# vi /etc/pam.d/ftd 插入如下两行
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
(5)建立一个虚拟用户
useradd -d /home/vsftpd -s /sbin/nologin vsftpd
只要更改这个虚拟用户的目录,那么ftp登录之后的目录也 就随之更改
ls -ld /home/vsftpd
drwx------ 3 vsftpd vsftpd 1024 Jun 6 22:55 /home/vsftpd/
(6)编写配置文件(注意:直接复制粘贴后要检查参数后面 不能有空格)
# vi /etc/vsftpd.conf
listen=YES
listen_port=21
max_clients=100
max_per_ip=5
local_max_rate=5120000
tcp_wrappers=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=120
accept_timeout=60
connect_timeout=60
pam_service_name=vsftpd


(7)建立每个用户的根目录、配置文件的目录和配置文件
# mkdir /home/vsftpd/test11
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/test11 文件内容如下
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
chown_uploads=YES              #允许改变上传文件或目录的属主。
chown_username=test11          #指定所有上传的文件或目录属主为test11.test11
local_root=/home/vsftpd/test11 #指定ftp虚拟用户的home目录。
# vi /etc/vsftpd_user_conf/test22 文件内容如下
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chown_uploads=YES
chown_username=test11
local_root=/home/vsftpd/test11
# chmod 700 /home/vsftpd/test11
# chown vsftpd.vsftpd /home/vsftpd/test11
这样,test11用户可以下载、上传、修改 /home/vsftpd/test11里的文件,而test22用户只能下载/home/vsftpd/test11里面的文件。
(8)启动程序 、测试
# /usr/local/sbin/vsftpd-pam /etc/vsftpd.conf &
#把上面的启动语句写入/etc/rc.d/rc.local.
(9)注意:使用IE的主动FTP方式测试连接。
调整设置:把IE的“选 项”/“INTERNET选项”/“高级”里的“使用被动FTP”的勾去掉。

 

阅读(631) | 评论(0) | 转发(0) |
0

上一篇:mysql: COMMAND

下一篇:服务器时间同步例子

给主人留下些什么吧!~~