ubuntu16.4安装vsftpd以及用户基本配置

往往我们的服务器都会部署在linux服务器上,而我开发使用的主机是windows系统,为了更好的模拟服务器环境,我安装了ubuntu的虚拟机,配置好lamp环境进行开发调试(deepin系统下可以直接使用sudo apt-get install lamp一键安装),那我就需要一个ftp来管理我的项目(虽然可以使用sftp,但不推荐),最直接方便的方法就是安装vsftpd(sudo apt-get install vsftpd),安装好后的配置文件是/etc/vsftpd.conf

安装软件#

Copy
# 切换到root账户`sudo su`,安装vsftpd apt-get install vsftpd # 安装db-util,将用户文件转为数据库文件 apt-get install db-util

安装好后就要开始配置用户了,最简单的方法是设置配置文件local_enable=YES,允许本地用户登录,这样就可以直接使用自己本地帐户登录了。

  • 新建一个本地账户vsftpd,禁止登录
Copy
# /srv/ftp目录为自定义用户目录 useradd -d /srv/ftp -s /bin/bash vsftpd
  • 将目录的所属者和所属组改为vsftpd
Copy
chown vsftpd:vsftpd /srv/ftp
  • 配置ftp用户文件
    我新建了一个文件夹/etc/vsftpd,将ftp有关的用户信息放在这里
Copy
# 首先创建一个用户列表文件,如:userlist.txt,奇数行为用户名,偶数行为密码,添加完用户之后**回车换行** user_id_1 user_passwd_1 # 生成对应的数据库文件 db_load -T -t hash -f /etc/vsftpd/userlist.txt /etc/vsftpd/vsftp_login.db # 编辑/etc/pam.d/vsftpd,在开头添加以下两行代码,我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd来启用的 auth sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient pam_userdb.so db=/etc/vsftpd/vsftpd_login
  • 编辑/etc/vsftpd.conf
Copy
# 允许本地账户登录 local_enable=YES # 本地账户创建目录及文件的权限,022 表示 文件夹权限755,文件权限644 local_umask=022 # 匿名账户创建目录及文件权限,同上(本地测试时,ftp上传文件权限总是600,设置这个选项之后可以正常访问了) anon_umask=022 # 允许写入 write_enable=YES  #启用guest guest_enable=YES #使用虚拟账号形式 guest_username=vsftpd #虚拟账号配置目录 user_config_dir=/etc/vsftpd #对vsftpd的用户使用pam认证 pam_service_name=vsftpd # 允许写入自己的目录(有时候ftp连接时需要) allow_writeable_chroot=YES
  • 创建本地用户配置文件
Copy
# 创建文件user_id_1,以用户名命名,加入以下内容获得相应权限 write_enable=YES anon_world_readable_only=NO anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES local_root=/srv/ftp

配置好后,重启服务/etc/inint.d/vsftpd restart#

命令行输入ftp 127.0.0.1成功会有提示信息,输入虚拟用户名和密码登录,如果提示错误500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed.,尝试在/etc/vsftpd.conf加入allow_writeable_chroot=YES,然后输入ls,如果能列出文件就成功了。

有些东西是在网上借鉴的,由于太多太零散,就不一一列出出处了,感谢前辈们的贡献

posted @   凭栏知潇雨  阅读(1670)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
CONTENTS