您的位置:首页 > 编程语言 > PHP开发

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

2011-01-08 16:49 826 查看
命令:

查看网络连接状态(可以显示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更改配置。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: