热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

vsftpd配置系统用户为登陆用户

1.安装vsftpd安装依赖包:yum-yinstallpampam-develdb4de4-develdb4-uitlsdb4-tcl新建vsftpd系统用户&#x

1.安装vsftpd


安装依赖包:

  1. yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl
新建vsftpd系统用户:


  1. useradd vsftpd -s /sbin/nologin
安装vsftpd


  1. yum -y install vsftpd

2.配置vsftpd



  1. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back


2.1 修改vsftpd.conf配置文件


主要是下面的一些配置:

  1. #
  2. local_enable=YES
  3. write_enable=YES
  4. local_umask=022
  5. dirmessage_enable=YES
  6. xferlog_std_format=YES
  7. listen=YES
  8. tcp_wrappers=YES
  9. hide_ids=YES
  10. #
  11. anonymous_enable=NO #设定不允许匿名访问
  12. anon_upload_enable=NO #禁止匿名用户上传
  13. anon_mkdir_write_enable=NO #禁止匿名用户建立目录
  14. dirmessage_enable=YES #设定开启目录标语功能
  15. xferlog_enable=YES #设定开启日志记录功能
  16. connect_from_port_20=YES #设定端口20进行数据连接
  17. chown_uploads=NO #设定禁止上传文件更改宿主
  18. xferlog_file=/var/log/vsftpd.log #设定Vsftpd的服务日志保存路径
  19. ftpd_banner="Welcome to FTP Server!" #设定Vsftpd的登陆标语。
  20. chroot_local_user=YES #限制用户在自己的家目录之内
  21. chroot_list_enable=YES #启用不被chroot的使用者账号
  22. chroot_list_file=/etc/vsftpd/chroot_list #不被chroot的使用者账号的列表文件
  23. user_config_dir=/etc/vsftpd/vsftpd_user_conf
  24. #针对不同的用户做不同的配置,这个目录下都是以用户名作为文件名
  25. # 限制某些用户的访问
  26. userlist_file=/etc/vsftpd/user_list
  27. userlist_deny=YES
  28. userlist_enable=YES
  29. #认证配置
  30. pam_service_name=vsftpd
  31. pam_service_name=/etc/pam.d/vsftpd
新建chroot_list文件:


  1. touch /etc/vsftpd/chroot_list
文件里面是可以chroot的用户,最好设置为空,这样所有用户都不能chroot了,更加安全。


建立用户配置目录:

  1. mkdir /etc/vsftpd/vsftpd_user_conf

2.2 用户个性化配置

编辑每个用户的个性化配置,主要是用户的主目录


  1. #vim /etc/vsftpd/vsftpd_user_conf/apple
  2. local_root=/home/apple/ftp
在配置之前最好把这个文件夹建立好。


  1. mkdir /home/apple/ftp
我们新建三个用户:apple,windows,google进行测试。


2.3 pam认证文件


本地用户验证需要用到pam文件,内容使用默认配置即可,这个文件在安装vsftpd时自动生成。




路径在/etc/pam.d/vsftpd。我们可以看一下内容:


  1. #%PAM-1.0
  2. session optional pam_keyinit.so force revoke
  3. auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
  4. auth required pam_shells.so
  5. auth include password-auth
  6. account include password-auth
  7. session required pam_loginuid.so
  8. session include password-auth

3.登录测试



启动vsftpd服务

  1. service vsftpd start
登录测试



可以看到,配置已经生效。apple可以正常登陆,但是不能切换到它的上级目录,保证安全性。


4.脚本自动化


4.1 自动化安装


  1. #!/bin/bash
  2. #date:2017-05-25
  3. #version:0.0.1

  4. echo \>\>\> 1. `date "+%Y-%m-%d-%H:%M:%S"` We will start vsftpd install
  5. yum -y install pam pam-devel db4 de4-devel db4-uitls db4-tcl vsftpd
  6. echo -e \>\>\> 2. `date "+%Y-%m-%d-%H:%M:%S"` "the vsftpd is already installed.
  7. >>> we will start configure the vsftpd.conf"
  8. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.back
  9. sed -i '/^[^#]/s/^/#/g' vsftpd.conf
  10. #开始配置vsftpd.conf文件
  11. echo "
  12. #
  13. local_enable=YES
  14. write_enable=YES
  15. local_umask=022
  16. dirmessage_enable=YES
  17. xferlog_std_format=YES
  18. listen=YES
  19. tcp_wrappers=YES
  20. hide_ids=YES
  21. #
  22. ##the conf is for vsftpd
  23. anonymous_enable=NO
  24. #设定不允许匿名访问
  25. anon_upload_enable=NO
  26. #禁止匿名用户上传
  27. anon_mkdir_write_enable=NO
  28. #禁止匿名用户建立目录
  29. dirmessage_enable=YES
  30. #设定开启目录标语功能
  31. xferlog_enable=YES
  32. #设定开启日志记录功能
  33. connect_from_port_20=YES
  34. #设定端口20进行数据连接
  35. chown_uploads=NO
  36. #设定禁止上传文件更改宿主
  37. xferlog_file=/var/log/vsftpd.log
  38. #设定Vsftpd的服务日志保存路径
  39. chroot_local_user=YES
  40. #限制用户在自己的家目录之内
  41. chroot_list_enable=YES
  42. #启用不被chroot的使用者账号
  43. chroot_list_file=/etc/vsftpd/chroot_list
  44. #不被chroot的使用者账号的列表文件
  45. user_config_dir=/etc/vsftpd/vsftpd_user_conf
  46. #针对不同的用户做不同的配置,这个目录下都是以用户名作为文件名
  47. # 限制某些用户的访问
  48. userlist_file=/etc/vsftpd/user_list
  49. userlist_deny=YES
  50. userlist_enable=YES
  51. #认证配置
  52. pam_service_name=vsftpd
  53. pam_service_name=/etc/pam.d/vsftpd" >> /etc/vsftpd/vsftpd.conf
  54. touch /etc/vsftpd/chroot_list
  55. mkdir /etc/vsftpd/vsftpd_user_conf
  56. echo "local_root=/home/username/ftp" > /etc/vsftpd/vsftpd_user_conf/default
  57. #
  58. echo -e 3. `date "+%Y-%m-%d-%H:%M:%S"` "The configure of vsftpd is over.\n"


4.2 新增用户


新增用户之后,如果直接用用户名密码登录,进去的是用户的家目录。这个时候可以设置用户的ftp主目录为/home/$username/ftp,脚本如下:

  1. #!/bin/bash
  2. #date:2017-05-25
  3. #version:0.0.1

  4. if read -t 5 -p "Please enter you name:" username
  5. then
  6. if id $username && [ -d /home/$username ] #判断用户和用户家目录是否存在
  7. then
  8. mkdir -p /home/$username/ftp
  9. cp /etc/vsftpd/vsftpd_user_conf/default /etc/vsftpd/vsftpd_user_conf/$username
  10. sed -i s/username/$username/g /etc/vsftpd/vsftpd_user_conf/$username
  11. echo "The config is over."
  12. else
  13. echo "The $username is not exists or the $username home is not exists."
  14. fi
  15. else
  16. echo -e "\nthe 5s is pass, you are to slow! "
  17. fi





推荐阅读
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • FTP服务ftp的报错及用户管理
    ftp服务常见报错530报错认证失败(密码错误或者服务端拒绝)550服务本身未开启553文件系统不可写(权限问题)500服 ... [详细]
  • 用lvm+vmware+kickstart实现系统自动安装和快照安装
    由于我的机子是32位,装不了64位系统,所以无法使用kvm,只能用vmware了,可是vmware安装使用自带的autoinst.iso实现自动安装,无法实现我的需求,经过研究我使用kic ... [详细]
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境
    PHP程序员玩转Linux系列搭建FTP代码开发环境-PHP程序员玩转Linux系列文章:有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家 ... [详细]
  • linux搭建FTP
    linux下FTP的搭建及优化[日期:2007-11-04]李磊19840817吴康[字体:大中小]首先安装Linux企业版第一张光盘中的vsftpd- ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • 本文介绍了sqlserver云存储和本地存储的区别,云存储是将数据存储在网络上,方便查看和调用;本地存储是将数据存储在电脑磁盘上,只能在存储的电脑上查看。同时提供了几种启动sqlserver的方法。此外,还介绍了如何导出数据库的步骤和工具。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 本文详细介绍了cisco路由器IOS损坏时的恢复方法,包括进入ROMMON模式、设置IP地址、子网掩码、默认网关以及使用TFTP服务器传输IOS文件的步骤。 ... [详细]
author-avatar
二狗子
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有