上传文件到我Linux设置的FTP上

上传文件到我Linux设置的FTP上,第1张

linux ftp 文件上传权限有两种匿名上传和本地上传

1)实现匿名用户的上传下载文件程序代码:

Anonymous_enable=yes匿名登陆

Connect_form_port_20=yes 启用FTP数据端口的数据连接

Pam_service_name=vsftpd验证方式

Listen=yes 独立的VSFTPD服务器

Anon_upload_enable=yes 开放上传权限

Anon_mkdir_write_enable=yes 可创建目录的同时可以在此目录中上传文件

Write_enable=yes 开放本地用户写的权限

Anon_other_write_enable=yes

匿名帐号可以有删除的权限加上上面的这段,你就可以实现匿名ftp的上传下载文件了然后你保存文件,用service vsftpd

start来启动vsftp的服务,然后就可以用ftp了注意:确定你的防火墙

iptables上打开21端口,不然在登陆ftp的时候会提示socket错误,拒绝连接。还有就是当你再次编辑vsftp.conf后用

service vsftpd restart重起的时候总是提示你不能关闭vsftp服务,这时候你用service vsftpd

status察看一下他的状态,如果提示你vsftpd被locked

那可能是因为你的vsftpd.conf中配置的有错误,你要重新编辑他,直到能正常重起他为止,一次配置不对,多配置几次就好了

2)实现本地用户上传下

程序代码:

新建一个用户

adduser 用户名增加一个用户

passwd 用户名 增加用户的密码

然后看/etc/passwd中最后一行就是你刚才添加的用户信息

然后编辑/etc/vsftpd/vsftpd.conf文件,

Local_enable=yes 允许使用本地用户来登陆ftp

在/etc/vsftpd.ftpuser中可以增加想要阻止登陆ftp的用户

下面有关linux中ftp的设置项:

限制用户只能在自己的目录中

Chroot_list_enable=yes 文件中的名单可以调用

Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no,在文件中加入用户名vsftpd.conf的参数

程序代码:Anonymous_enable=yes允许匿名登陆

Dirmessage_enable=yes 切换目录时,显示目录下.message的内容

Local_umask=022 FTP上本地的文件权限,默认是077

Connect_form_port_20=yes 启用FTP数据端口的数据连接

Xferlog_enable=yes 激活上传和下传的日志

Xferlog_std_format=yes 使用标准的日志格式

Ftpd_banner=XXXXX 显示欢迎信息

Pam_service_name=vsftpd 验证方式

Listen=yes独立的VSFTPD服务器

Anon_upload_enable=yes 匿名用户上传权限

Anon_mkdir_write_enable=yes创建目录的同时可以在此目录中上传文件

Write_enable=yes 本地用户写的权限

Anon_other_write_enable=yes匿名帐号可以有删除的权限

Anon_world_readable_only=no匿名用户浏览权限

Ascii_upload_enable=yes 启用上传的ASCII传输方式

Ascii_download_enable=yes 启用下载的ASCII传输方式

Banner_file=/var/vsftpd_banner_file 用户连接后欢迎信息使用的是此文件中的相关信息

Idle_session_timeout=600(秒) 用户会话空闲后10分钟

Data_connection_timeout=120(秒) 将数据连接空闲2分钟断

Accept_timeout=60(秒) 将客户端空闲1分钟后断

Connect_timeout=60(秒)中断1分钟后又重新连接

Local_max_rate=50000(bite)本地用户传输率50K

Anon_max_rate=30000(bite) 匿名用户传输率30K

Pasv_min_port=5000 将客户端的数据连接端口改在

Pasv_max_port=6000 5000—6000之间

Max_clients=200FTP的最大连接数

Max_per_ip=4 每IP的最大连接数

Listen_port=5555 从5555端口进行数据连接

Local_enble=yes本地帐户能够登陆

Write_enable=no 本地帐户登陆后无权删除和修改文件

Chroot_local_user=yes本地所有帐户都只能在自家目录

Chroot_list_enable=yes 文件中的名单可以调用

Chroot_list_file=/etc/vsftpd.chroot_list 前提是chroot_local_user=no

Userlist_enable=yes在指定的文件中的用户不可以访问

Userlist_deny=yes

Userlist_file=/etc/vsftpd.user_list

Banner_fail=/路径/文件名 连接失败时显示文件中的内容

Ls_recurse_enable=no

Async_abor_enable=yes

one_process_model=yes

Listen_address=10.2.2.2 将虚拟服务绑定到某端口

Guest_enable=yes 虚拟用户可以登陆

Guest_username

在 Linux 系统提示符 $ 下,使用 ftp 命令,如下所示:

$ftp a.b.c.d <cr>(其中:a.b.c.d 为假设的一个对方的 FTP 服务器的 IP 地址)

如果是对方的 FTP 服务器允许别人进行匿名访问的话,那么用户名就是:anonymous,密码一般为空。否则的话,就需要输入对方提前事先提供给你的用户名和密码才能够进行文件传输。

使用约定好的用户名和密码登录到对方的 FTP 服务器之后,你就可以使用 put(传输单个文件)、或者 mput(传输多个文件)、get(从对方的FTP服务器上获取单个文件)、mget(从对方的FTP服务器上获取多个文件)了。当然了,一般 FTP 服务器的系统管理员都会给你一个 /pub 子目录,供所有用户使用。所以一般来说,即使使用账号登录 FTP 服务器之后,第一个命令就是: cd /pub ,转入公共子目录。

#!/bin/bash

#设置日志文件,前提建好了/backup/log目录

LogFile=/backup/log/`date +"%Y-%m"`.log

#备份源目录

SourceDir=/cvs

#备份目标

BakDir=/backup

#保存20天过期自动删除

RetainDay=20

#备份的内容可以写进project.lst,如cvs目录下有a,b,c三个目录,project.lst填写多少就备份多少,下面是备份的

#具体脚本,其核心是tar打包,并把重要的内容记录到日志文件里

ProjectLst=/backup/project.lst

##################################################

DATE=`date +"%Y-%m-%d"`

echo "backup start at $(date +"%Y-%m-%d %H:%M:%S")" >$LogFile

echo "--------------------------------------------------" >>$LogFile

cd $BakDir

PROJECTLIST=`cat $ProjectLst`

for Project in $PROJECTLIST

do

ProjectData=$SourceDir/$Project

DestDir=$BakDir/$Project

PackFile=$DATE.$Project.tgz

if [ -f $BakDir/$PackFile ]

then

echo "backup file have exist !" >>$LogFile

else

cp -RHpf $ProjectData $DestDir >/dev/null

tar -zcvf $PackFile $Project >/dev/null

echo "backup $Project done into $PackFile" >>$LogFile

rm -rf $Project

fi

done

echo "--------------------------------------------------" >>$LogFile

echo "backup end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

echo " " >>$LogFile

##################################################

#下面的内容就是把刚才备份的内容传到服务器上,前提是你有一个可以访问到底FTP服务器

#put backup to ftp server

HOST=192.168.110.111

FTP_USERNAME=ftpuser

FTP_PASSWORD=123456

cd $BakDir

echo "start open ftp serverat $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

echo "--------------------------------------------------" >>$LogFile

/usr/bin/ftp -in <open $HOST

user $FTP_USERNAME $FTP_PASSWORD

put $DATE.$Project.tgz

bye

EOF

echo "put ftp end at $(date +"%Y-%m-%d %H:%M:%S")" >>$LogFile

#最后上传完毕后再查看本地备份大于20天的自动删除,这样就可以实现本地异地双备份

find $Bakdir -type f -mtime +$RetainDay -name "*.$Project.tgz" -exec rm {} \>/dev/null

exit 0

#最后我们还可用crontab做个周期性计划,比如每周一次全备份

#59 23 * * 6 /home/backup.sh


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8591880.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存