
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
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)