博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux搭建FTP服务,实现只上传,不下载
阅读量:4170 次
发布时间:2019-05-26

本文共 2018 字,大约阅读时间需要 6 分钟。

笔者最近收到一个需求,搭建Linux上的Ftp服务,但是只能上传,不能下载,且用户不能跳开Ftp,通过Sftp来获得文件。大致看了些网上分享。通过配置,完成这个“奇葩”需求。

  • 首先跳开Ftp,使用Sftp那么可以通过设置虚拟账户来实现。
  • 其次Ftp上只上传,不下载,那么通过配置Ftp服务来实现。

操作系统Redhat6.8,安装vsftp包。通过rpm命令:(这里通过挂载了iso,进入包目录)

  1. # rpm -ivh vsftpd-xxxxx

安装db4

  1. # rpm -ivh db4-xxxxx

也可以通过Yum命令,道理是一样的。


安装完成后,首先配置vsftpd.conf.进入/etc/vsftpd

  1. # vim vsftpd.conf

这里删除了#注释的内容,故可以在文件末尾直接添加下列配置。

  1. anonymous_enable=NO
  2. local_enable=YES
  3. write_enable=YES
  4. local_umask=022
  5. dirmessage_enable=YES
  6. xferlog_enable=YES
  7. connect_from_port_20=YES
  8. chown_uploads=YES
  9. xferlog_std_format=YES
  10. download_enable=NO
  11. anonymous_enable=NO
  12. local_enable=YES
  13. write_enable=YES
  14. local_umask=022
  15. dirmessage_enable=YES
  16. ftpd_banner=Welcome to blah FTP service .
  17. chroot_local_user=YES
  18. chroot_list_enable=YES
  19. chroot_list_file=/etc/vsftpd/chroot_list
  20. listen=YES
  21. pam_service_name=vsftpd
  22. userlist_enable=YES
  23. tcp_wrappers=YES
  24. guest_enable=YES
  25. virtual_use_local_privs=NO
  26. guest_username=ftpuser
  27. user_config_dir=/etc/vsftpd/vsftpd_user_conf

新建虚拟账户,同样在/etc/vsftpd目录下新建logins.txt文件(文件名随意)

编辑: 

第一行用户名:ftpcs 
第二行:密码XXX 
多个用户依次添加。(奇数行为用户,偶数行为密码)

文件添加完成后:

  1. # db_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_logins.db

为了安全性,这个时候logins.txt文件可以移除。

赋予权限

  1. # chmod 600 /etc/vsftpd/logins.db

放置虚拟用户:

  1. # vim /etc/vsftpd/chroot_list

在这边添加上面的虚拟用户,只有用户没有密码。

新建系统用户,这里笔者新建了ftpuser,指定到/home/ftpsite目录,同时在ftpsite目录下新建虚拟用户对应的ftp目录。

  1. # useradd -d /home/ftpsite -s /sbin/nologin ftpuser
  2. # mkdir /home/ftpsite/ftpcs
  3. # chmod 700 /home/ftpsite/
  4. # chown -R ftpuser:ftpuser /home/ftpsite

还是当前目录新建:

  1. # mkdir vsftpd_user_conf

进入该目录,新建对应虚拟用户的文件:

  1. # vi ftpcs

添加内容

  1. local_root=/home/ftpsite/ftpcs
  2. write_enable=YES
  3. anon_umask=022
  4. anon_world_readable_only=NO
  5. anon_upload_enable=YES
  6. anon_mkdir_write_enable=YES
  7. anon_other_write_enable=NO

配置pam.d

  1. # vim /etc/pam.d/vsftpd

加入下面内容,其他行全部注释: 

(64位系统:)

  1. auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
  2. account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

完成重启,测试ftpcs账户。

  1. # service vsftpd restart

这个时候虚拟账户ftp登录,只能停留在当前目录,只可上传文件,不能下载,删除。 

测试比较匆忙,欢迎补充。

转载地址:http://vxyai.baihongyu.com/

你可能感兴趣的文章
Oracle EBS R12 - IE 8 打开form时碰到FRM-92050 /forms/lservlet/debug:-1错误的解决方法
查看>>
看一个大男人是怎样处理家庭矛盾的(绝对经典)(转)
查看>>
VMware6辅助启动.bat
查看>>
升级linux内核到2.6.24
查看>>
vbs脚本大全,配有实例
查看>>
WIN32汇编基础
查看>>
Win32汇编基础教程
查看>>
“VM6辅助启动.bat”生成器.hta
查看>>
windows脚本调试howto
查看>>
五笔86版字根图程序
查看>>
Oracle EBS R12 - Use Rman to Clone Oracle EBS R12.1.1 without shutting down source Database and MT
查看>>
Oracle EBS - What happening when executing adpreclone.pl in DB and Apps Tier?
查看>>
Oracle EBS - What happening when executing adcfgclone.pl in DB Tier as well as Apps Tier?
查看>>
Oracle EBS - Details of Adpreclone and Adcfgclone
查看>>
两个对Oracle性能影响很大的io参数
查看>>
Win32ASM备忘之搭建UltraEdit实验环境
查看>>
The Best Linux Distribution of them all
查看>>
Oracle Apps DBA Interview Questions
查看>>
简单屏幕锁(Simple Screen Locker) 1.1.6.16
查看>>
Bash String Manipulation Examples – Length, Substring, Find and Replace
查看>>