ubuntu 下用vsftpd搭建ftp服务器,并创建虚拟用户

命令:

查看网络连接状态(可以显示vsftp是否开启):sudo netstat -tulnp 

停止vsftpd服务:sudo service vsftpd stop
开始vsftpd服务: sudo service vsftpd start

 

 

今天遇到一个问题,很长时间才发现原因,竟然是文件名多了个空格,在命令行下用tab补全才发现。唉。特此写下,留作警戒。

 

注意所有的配置文件中不要有空行或空格,否则会出错!导致 拒绝连接,其实就是服务未启动,使用 sudo /usr/sbin/vsftpd 会显示错误。

如果只能下载不能上传,请检查各个目录的权限。

 

首先在/home/vsftpd 目录下建立了以下2个子目录,注意更改文件权限 (sudo chmod 777 basic)

  • basic
  • super

我们将要建3个虚拟用户,密码与用户名相同

  • basic  
  • super

使得

  • 用户basic 的主目录为 basic ,在该目录下只有只读权限
  • 用户super的主目录为 super,在该目录下只有读写权限

 

1.安装vsftp和db4.8
sudo apt-get install vsftpd
sudo apt-get install db4.8-util

2.创建loguser.txt(sudo touch /home/loguser.txt)内容如下(奇数行为用户名,偶数行为密码):

 

basic

basic

super

super

 

3.生成用户名数据库文件:

 

sudo touch /etc/vsftpd_login.db

sudo chmod 600 /etc/vsftpd_login.db
sudo db4.8_load -T -t hash -f /home/loguser.txt /etc/vsftpd_login.db 4.

配置PAM文件

编辑文件/etc/pam.d/vsftpd.vu 将以下内容复制到原文件前面两行:

sudo gedit /etc/pam.d/vsftpd.vu

 

auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  • 我们上一步建立的数据库 vsftpd_login 在此处被使用(注意最后没有.db)
  • 我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd.vu来启用的,稍后你将发现。

5.

为虚拟用户创建本地系统用户

新建一个系统用户vsftpd,用户家目录为/home/vsftpd, 用户登录终端设为/bin/false(即使之不能登录系统)

 

sudo useradd vsftpd -d /home/vsftpd -s /bin/false

sudo mkdir /home/vsftpd

sudo chown vsftpd:vsftpd /home/vsftpd

 

6. 编辑 /etc/vsftpd.conf 文件

 

sudo gedit /etc/vsftpd.conf

 

复制以下内容:


listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to  FTP service.
chroot_local_user=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd_user_conf
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd.vu
rsa_cert_file=/etc/ssl/private/vsftpd.pem
local_umask=022
anon_root=/home/ftp
local_root=/home/ftp
anon_max_rate=0
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
write_enable=YES
force_dot_files=NO
tcp_wrappers=YES

 

7.更改两个用户名的权限:

 

sudo mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
sudo touch basic super

basic文件中的内容如下

local_root=/home/vsftpd/basic

 

super文件内容如下:

write_enable=YES
anon_world_readable_only=NO 
anon_upload_enable=YES 
anon_mkdir_write_enable=YES 
anon_other_write_enable=YES 
local_root=/home/vsftpd/super
7. 重启vsftpd更改配置。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值