Chinaunix首页 | 论坛 | 博客
  • 博客访问: 818005
  • 博文数量: 124
  • 博客积分: 1927
  • 博客等级: 上尉
  • 技术积分: 932
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-31 14:06
文章分类

全部博文(124)

文章存档

2018年(5)

2017年(2)

2016年(6)

2015年(4)

2014年(24)

2013年(7)

2012年(11)

2011年(13)

2010年(52)

我的朋友

分类: LINUX

2010-12-14 14:22:56

安装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
这样就安装完成了,那么我们开始进行简单的配置


对于用DB库存储用户名及密码的方式来说:

1)查看系统是否有相应软件包


# rpm –qa | grep db4
db4-devel-4.2.52-7.1
db4-4.2.52-7.1
db4-utils-4.2.52-7.1
2)建立一个logins.txt的文件,单行为用户名,双行为密码,例如

# vi /home/logins.txt

xuchen
12345

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/ftp
插入如下两行

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
ls -ld /home/vsftpd
drwx------  3 vsftpd vsftpd 1024 Jun  6 22:55 /home/vsftpd/
6)编写配置文件(注意事项请参看匿名用户的配置,这里不再赘述
)
# vi /etc/vsftpd-pam.conf
listen=YES
listen_port=21
tcp_wrappers=YES //
支持tcp_wrappers,限制访问
(/etc/hosts.allow,/etc/hosts.deny)
listen=YES
的意思是使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式
)
anonymous_enable=NO
local_enable=YES  //PAM
方式此处必须为YES,如果不是将出现如下错误:

500 OOPS: vsftpd: both local and anonymous access disabled!
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 //
虚拟用户和本地用户权限相同


pasv_enable=YES //
建立资料联机采用被动方式

pasv_min_port=30000 //
建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0

pasv_max_port=30999 //
建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0

7)启动程序

# /usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &
8)测试连通及功能

# vi /home/vsftpd/test //
建立一个文件,内容如下

1234567890
# chown vsftpd.vsftpd /home/vsftpd/test

# ftp 127.0.0.1
Connected to 127.0.0.1.
220 (vsFTPd 2.0.3)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
Name (127.0.0.1:root): xuchen
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/"
ftp> size test
213 11
ftp> quit
221 Goodbye.
OK
,用户名为xuchen,密码为12345可以连接到FTP服务器,看不到文件列表,但可以下载已知文件名的文件,不能上传文件,非常安全吧!!


如果我们需要用户看到文件,怎么办?也好办,在配置文件中加入如下语句:

anon_world_readable_only=NO  //
匿名登入者不能下载可阅读的档案,默认值为
YES

如果需要让用户上传文件和下载文件分开,建议如下这么做

# vi /home/logins.txt
xuchen
12345
upload
45678
//
首先建立虚拟用户upload,密码为
45678
# db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db //
更新数据文件


# mkdir /home/vsftpd/upload
# vi /etc/vsftpd-pam.conf
加入如下语句

user_config_dir=/etc/vsftpd_user_conf
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/upload
文件内容如下

local_root=/home/vsftpd/upload
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

# chmod 700 /home/vsftpd/upload
# chown vsftpd.vsftpd /home/vsftpd/upload/

这样,xuchen用户可以下载/home/vsftpd里的文件及upload里的文件,而upload用户可以上传和下载/home/vsftpd/upload文件夹的东西,但不能到/home/vsftpd里下载文件,很简单得实现了分用户上传和下载


阅读(1203) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-12-15 15:11:44

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com