您的位置:首页 > 编程语言 > PHP开发

虚拟账号ftp服务器

2015-07-03 22:08 597 查看
1. 简介

由于部门要将统计出来的数据提供给其他部门同事使用,以及其他公司使用。考虑数据的传输管理简单,我们搭建了ftp文件服务器。

2. 部署架构



1)数据源在内网上面的,数据分析服务器上计算完成,然后内网通过rsync同步到ftp服务器上。
ftp-server rsync配置:

[root@VM_72_183_centos ftpdata]# cat /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 10
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[ftpdata]
path=/data/ftpdata
ignore errors
read only = no
list = no
#hosts allow = 192.168.0.0/255.255.255.0
auth users = root
secrets file = /etc/rsyncd.secrets

[root@VM_72_183_centos ftpdata]# cat /etc/rsyncd.secrets
root:ftpdata5666

[root@VM_72_183_centos ~]# rsync --daemon --config=/etc/rsyncd.conf --log-file=/var/log/rsync.log


数据源同步数据设置

[root@lnmp ~]# vim /etc/rsync.pass
ftpdata5666

[root@lnmp ~]# chmod 600 /etc/rsync.pass

[root@lnmp ~]# rsync -avrzp --password-file=/etc/rsync.pass 20150703/data.log root@10.232.72.183::ftpdata/mike/20150703/     #同步
rsync -auvzP --password-file=/etc/rsyncd.pass $src root@$hostip::ftpdata/$ftpuser/$date/                      #自动化同步设置


2)其他部门从ftp-server下载数据。
ftp-server vsftpd配置:
1)安装vsftpd服务
2)配置/etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_root=/data/ftpdata
guest_enable=YES
guest_username=vftpuser
user_config_dir=/etc/vsftpd/vusers_dir

pam_service_name=vsftpd.vu
3) 账号管理

useradd -d /data/ftpdata/ -s /sbin/nologin vftpuser

vim /etc/vsftpd/vusers.list
mike               #奇数行,用户名
123                #偶数行,密码
john
456
test
789

db_load -T -t hash -f /etc/vsftpd/vusers.list /etc/vsftpd/vusers.db    #生成密码数据库

vim /etc/pam.d/vsftpd.vu
#%PAM-1.0
auth       required     pam_userdb.so  db=/etc/vsftpd/vusers
account    required     pam_userdb.so  db=/etc/vsftpd/vusers


添加账号脚本:
[root@lnmp ~]# cat addvftpuser.sh

#!/bin/bash
user=$1
pass=$2
dir=/data/ftpdata
if [ $# -lt 2 ] ;then echo "addvftpuser.sh <username> <password>";exit 1; fi
#update password
cd /etc/vsftpd/
\cp -f vusers.list vusers.list.old
echo $user >> vusers.list
echo $pass >> vusers.list
db_load -T -t hash -f vusers.list vusers.db
#mkdir user home dir
mkdir -p $dir/$user
echo "local_root=$dir/$user" > vusers_dir/$user


[root@lnmp ~]#sh addvftpuser.sh hello 1234 #后续只需这种方式,就可以添加账号
默认每个用户只能在自己的独立的目录,权限只读。

客户端下载:

lftp
[root@node1 ~]# lftp -u mike,123 192.168.191.130
lftp mike@192.168.191.130:~> ls
-rw-r--r--    1 0        0               0 Jun 30 14:38 aa
lftp mike@192.168.191.130:/> get aa
lftp mike@192.168.191.130:/> exit
[root@node1 ~]# ls aa
aa

wget
[root@lnmp ~]# wget --ftp-user=mike --ftp-password=123 ftp://localhost/aa --2015-06-30 23:39:04--  ftp://localhost/aa => “aa”

浏览器打开 ftp://192.168.191.130[/code] 
                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: