LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 557|回复: 2

有关ftp的文章不懂!

[复制链接]
发表于 2003-10-1 22:36:05 | 显示全部楼层 |阅读模式
准备:
1) 确认已经安装vsftpd
[rpm -q vsftpd]

2) 确认安装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


2) 生成一个使用你的新的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]




3) 建立虚拟用户的目录.

[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]

4) 建立你自己的 /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

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

5) 运行 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]

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

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


2) 生成一个使用你的新的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] "
发表于 2003-10-1 23:04:02 | 显示全部楼层
这段用到 vi 和 db_load
vi 是系统的编辑器。
db_load 是db4带的工具,与mysql一点关系都没有。

我照此实现过虚拟用户,应该是完全正确的。
 楼主| 发表于 2003-10-2 11:54:56 | 显示全部楼层
db4?没用过,难接触吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表