免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2785 | 回复: 0
打印 上一主题 下一主题

[FTP] 基于虚拟用户的vsftp用户迁移的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-15 18:26 |只看该作者 |倒序浏览
参考   下面的文档 配置了 ftp
  


虚拟用户形式实现Vsftp的配置文档

#cd /root/setup
#tar zxf vsftpd-2.0.3.tar.gz
# cd  vsftpd-2.0.3  //进入vsftpd-2.0.3的源代码目录
# vi builddefs.h  //编辑builddefs.h 文件,文件内容如下:
#ifndef VSF_BUILDDEFS_H

#define VSF_BUILDDEFS_H
#define VSF_BUILD_TCPWRAPPERS
#undef VSF_BUILD_PAM
#define VSF_BUILD_SSL

#endif /* VSF_BUILDDEFS_H */
将以上undef都改为define,支持tcp_wrappers,支持PAM认证方式,支持SSL

# 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,

安装vsftp配置文件,可执行程序,man等:
# install -m 755 vsftpd /usr/local/sbin/vsftpd
# 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.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
test1
12345
test2
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
只要更改这个虚拟用户的目录,那么ftp登录之后的目录也就随之更改

ls -ld /home/vsftpd
drwx------  3 vsftpd vsftpd 1024 Jun  6 22:55 /home/vsftpd/

(6)编写配置文件
# vi /etc/vsftpd.conf
listen=YES  //使用standalone启动vsftpd
listen_port=2121
max_clients=100 //可接受的最大连接数
max_per_ip=5 //每个IP最大的连接数
local_max_rate=5120000 //本地用户的传输比率(b/s)
tcp_wrappers=YES //支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

anonymous_enable=NO //禁用匿名账户
local_enable=YES  //PAM方式此处必须为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 //建立资料联机所可以使用port 范围的上界,0表示任意。默认值为0。
pasv_max_port=30999 //建立资料联机所可以使用port 范围的下界,0表示任意。默认值为0。

xferlog_enable=YES //开启日志记录
xferlog_file=/var/log/vsftpd.log //日志存放文件位置

idle_session_timeout=600 //空闲连接超时
data_connection_timeout=120 //数据传输超时
accept_timeout=60 //PAVS请求超时
connect_timeout=60 // PROT模式连接超时


(7)建立每个用户的根目录、配置文件的目录和配置文件
# mkdir /home/vsftpd/test1
# mkdir /etc/vsftpd_user_conf
# vi /etc/vsftpd_user_conf/test1 文件内容如下
local_root=/home/vsftpd/test1
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

# vi /etc/vsftpd_user_conf/test2 文件内容如下
local_root=/home/vsftpd/test1
write_enable=NO
anon_world_readable_only=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO


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

这样,test1用户可以下载、上传、修改 /home/vsftpd/test1里的文件,而test2用户只能下载/home/vsftpd/test1里面的文件。

(8)启动程序 、测试
# /usr/local/sbin/vsftpd  /etc/vsftpd.conf  &

在向新的服务器迁移老用户和用户ftp登录目录后,登录的 目录不是local_root指定的目录 ,是什么原因?
谢谢回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP