有关ftp的文章不懂!

由 Snoopy 在 10-01-2003 22:36 发表:

有关ftp的文章不懂!

准备:

  1. 确认已经安装vsftpd

[rpm -q vsftpd]

  1. 确认安装Berkeley db

[rpm -q db4 ]

开始:

  1. 生成虚拟用户的数据库:

使用pam_userdb 来认证虚拟用户.

先生成一个logins.txt:

[vi /root/logins.txt ]

tom

foo

fred

bar

[db_load -T -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db]

[chmod 600 /etc/vsftpd/vsftpd_login.db]

#更多关于DB 的资料,看下面:

http://www.sleepycat.com/docs/utility/index.html

  1. 生成一个使用你的新的db的PAM 文件.

[vi /etc/pam.d/vsfptd]

修改成如下:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

[cp /etc/pam.d/vsftpd /etc/pam.d/ftp]

  1. 建立虚拟用户的目录.

[useradd -d /home/ftpsite virtual ]

[ls -ld /home/ftpsite ]

(看起来应该是这样的):

drwx------ 3 virtual virtual 4096 Jul 30 00:39 /home/ftpsite

拷贝一个文件来做测试用:

[cp /etc/hosts /home/ftpsite]

[chown virtual.virtual /home/ftpsite/hosts]

  1. 建立你自己的 /etc/vsftpd/vsftpd.conf 文件

anonymous_enable=NO

local_enable=YES

#这禁止了匿名用户使用FTP 服务,并且允许非匿名用户的登录,就是虚拟用户所需要的权限

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

#出于安全的目的,禁止写权限

chroot_local_user=YES

#这明确了虚拟用户是被定向到了虚拟的FTP 空间:/home/ftpsite

guest_enable=YES

guest_username=virtual

guest_enable 是很重要的- 它激活了虚拟用户的选项! 而guest_username 说明所有的虚拟用户被看做是实际的用户"virtual" . 这也帮助确定用户的目录.

listen=YES

listen_port=10021

使 vsftpd 以"standalone" 模式运行- 端口10021

pasv_min_port=30000

pasv_max_port=30999

#限定端口,方便防火墙的设置

  1. 运行 vsftpd.

[vsftpd /etc/vsftpd/vsftpd.conf &]

#这样做是指定配置文件,同时可以避免出500错误

6)确认已经运行:

[ps aux|grep vsftpd]

7)测试.

ftp localhost 10021

Connected to localhost (127.0.0.1).

220 ready, dude (vsFTPd 1.1.0: beat me, break me)

Name (localhost:chris): tom

331 Please specify the password.

Password:

230 Login successful. Have fun.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> pwd

257 "/"

ftp> ls

227 Entering Passive Mode (127,0,0,1,117,135)

150 Here comes the directory listing.

226 Transfer done (but failed to open directory). # 仅仅因为目录并非可列表的,忽略

ftp> size hosts # 查看文件名为"hosts"的文件的大小

213 147

ftp> get hosts # 下载文件名为"hosts"的文件

其中下面这个过程如何实现啊??可以用mysql吗?怎么完成呢?

"1) 生成虚拟用户的数据库:

使用pam_userdb 来认证虚拟用户.

先生成一个logins.txt:

[vi /root/logins.txt ]

tom

foo

fred

bar

[db_load -T -t hash -f /root/logins.txt /etc/vsftpd/vsftpd_login.db]

[chmod 600 /etc/vsftpd/vsftpd_login.db

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus