linux服务器搭建ftp服务脚本(在centos6.5和centos7上测试通过)(该脚本没有进行判断,需要自行清理环境)(该脚本只允许上传不允许下载,不允许使用匿名用户和本地用户登录)
安装脚本
#!/bin/bashsource /etc/rc.d/init.d/functions#安装vsftpdrpm -q vsftpdif [ $? -ne 0 ];thenyum install -y vsftpdfi#备份主配置文件cp /etc/vsftpd/ftpusers{,.bak}cp /etc/vsftpd/user_list{,.bak}cp /etc/vsftpd/vsftpd.conf{,.bak}#创建虚拟用户read -p "input username(default tom) : " USERNAMEUSERNAME=${USERNAME:-tom}read -p "input user password (default 123456):" PASSWORDPASSWORD=${PASSWORD:-123456}read -p "input ftp home (default /usr/+ $USERNAME):" FTPHOMEFTPHOME=${FTPHOME:-"/usr/$USERNAME"}read -p "input virtual username (default test):" VNAMEVNAME=${VNAME:-test}read -p "input virtual user passwd (default $VNAME):" VPASSWDVPASSWD=${VPASSWD:-"$VNAME"}echo $USERNAME $PASSWORD $FTPHOME $VNAME $VPASSWD#read -p #修改主配置文件cat > /etc/vsftpd/vsftpd.conf << EOFlisten_port=21write_enable=YESlocal_umask=022xferlog_enable=YESxferlog_file=/var/log/vsftpd.logconnect_from_port_20=NOdata_connection_timeout=1200listen=YESmax_clients=10setproctitle_enable=YESanonymous_enable=NOlocal_enable=YESanon_upload_enable=NOanon_mkdir_write_enable=NOchroot_local_user=YESdirmessage_enable=YESftpd_banner=Welcome to blah FTP service.guest_enable=YESpam_service_name=/etc/pam.d/vsftpd.virtualguest_username=$USERNAMEvirtual_use_local_privs=YESuser_config_dir=/etc/vsftpd/vhomeuserlist_enable=YESuserlist_deny=YEStcp_wrappers=YES#被动模式,默认为yespasv_enable=YES#pasv_min_port=1024#pasv_max_port=2048download_enable=NOEOF #创建宿主用户useradd -d $FTPHOME -s /sbin/nologin $USERNAMEecho $PASSWORD|passwd --stdin $USERNAME#创建虚拟用户宿主目录,用于虚拟用户登录访问mkdir -pv $FTPHOMEchown -R $USERNAME.$USERNAME "$FTPHOME"#创建虚拟用户cat > /etc/vsftpd/vusers.txt << EOF$VNAME$VPASSWDEOFdb_load -T -t hash -f /etc/vsftpd/vusers.txt /etc/vsftpd/vsftpd-virtual-user.db#创建pam认证配置文件,指定数据库文件路径cat > /etc/pam.d/vsftpd.virtual << EOFauth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-useraccount required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd-virtual-userEOF#创建虚拟用户配置信息存放目录mkdir -pv /etc/vsftpd/vhome#在目录下对虚拟用户进行权限分配cat > /etc/vsftpd/vhome/$VNAME <<EOFanon_world_readable_only=NOanon_upload_enable=YESanon_mkdir_write_enable=YESanon_other_write_enable=YESanon_umask=033local_root=$FTPHOMEEOF#重启vsftpd服务service vsftpd restart
vsftpd.conf配置文件讲解
#监听端口 listen_port=21 #允许写入 write_enable=YES #设置umask local_umask=022 #启用日志 xferlog_enable=YES #设置日志路径 xferlog_file=/var/log/vsftpd.log #指定FTP使用20端口进行数据传输,默认值为YES。 connect_from_port_20=YES #ftp数据连接超时,默认120s data_connection_timeout=1200 #使用standalone模式运行 listen=YES #最大连接数,默认0表示无限制 max_clients=10 #宿主ftp连接是否以不同的进程表现出来,默认为no setproctitle_enable=YES #匿名用户登录,设置为no anonymous_enable=NO #本地用户登录,设置为no local_enable=NO #匿名用户上传,设置为no anon_upload_enable=NO #匿名用户有创建目录的权限。设置为no anon_mkdir_write_enable=NO #是否运行用户切换到上级目录,默认为NO,yes时所有用户均不能切换到其他目录(牢笼模式) chroot_local_user=YES #设置欢迎语 dirmessage_enable=YES ftpd_banner=Welcome to blah FTP service. #启用虚拟用户 guest_enable=YES #虚拟用户pam使用的名称 pam_service_name=/etc/pam.d/vsftpd.virtual #使用的宿主用户名 guest_username=ftphost #让虚拟用户有本地宿主用户的权限 virtual_use_local_privs=YES #定义用户配置文件 user_config_dir=/etc/vsftpd/vhome #是否启用userlist文件 userlist_enable=YES #是否允许userlist中用户访问 userlist_deny=YES #结合tcp wrapper进行主机访问控制 tcp_wrappers=YES #是否启用被动模式 pasv_enable=YES #被动模式端口范围,默认0表示任意 #pasv_min_port=1024 #pasv_max_port=2048 #禁止将文件下载本地 download_enable=NO
linux使用被动模式自动上传文件脚本
#!/bin/sh rpm -q ftpif [ $? -ne 0 ];thenyum install -y ftpfiecho "start ftp update"# -n: 不受.netrc文件的影响,<< : 使用即时文件重定向输入ftp -n<< EOF open IP porduser username passwordpassivebinarycd DIRlcd /LOCAL/DIRpromptmput *closebyeEOF
put命令讲解
open 建立指定ftp服务器连接,默认端口21user 连接用户密码passive 使用被动模式binary 二进制传输模式(不会对文件就行任何修改)cd 切换远程ftp命令lcd 切换本地目录prompt 关闭交互模式mput 上传文件close 断开ftp连接bye 退出ftp
windows自动上传脚本(需要打开被动模式)
@Echo Off::”设置path环境变量”set path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\::”切换到执行目录”c:cd C:\Users\Administrator\Desktop\test::”将执行的选项写入到文件,然后调用”Echo open IP PORT >ftp.upEcho username>>ftp.upEcho password>>ftp.upEcho binary>>ftp.upEcho Cd DIR >>ftp.upEcho lcd C:\Users\Administrator\Desktop\test\DIR>>ftp.upEcho prompt>>ftp.upEcho mput *>>ftp.upEcho close>>ftp.upEcho bye>>ftp.up::”执行ftp命令,调用配置”FTP -s:ftp.up::”删除产生的配置文件”del ftp.up /q
简单的讲解一下
open 连接ftp,后面接的是ftp服务器用户、断开 username ftp连接用户名 password ftp连接密码 binary 使用二进制传输模式 cd 切换远程ftp目录 lcd 切换本地暴露 prompt 关闭交互模式 |
windows打开ftp被动模式
打开IE浏览器-->工具-->internet 选项-->高级-->浏览-->勾选“使用被动ftp”
参考:
vsftpd参考文档:http://blog.51cto.com/yuanbin/108262
ftp命令详解:http://blog.csdn.net/zzzzcs/article/details/23995833
原文地址:http://blog.51cto.com/13323775/2060316
时间: 2024-10-08 07:18:57