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

安装配置Ubuntu+vsftpd+MySQL+pam服务器环境

需要安装一个ftp服务器,需要使用多ftp用户并能够方便的管理ftp用户。于是使用vsftp+mysql+pam的组合,在mysql中进行用户管理。1.安装vsftpdsudoapt-getinstallvsftpd2.创建guest用户vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除sudouse

需要安装一个ftp服务器,需要使用多ftp用户并能够方便的管理ftp用户。于是使用vsftp+mysql+pam的组合,在mysql中进行用户管理。

1.安装vsftpd

sudo apt-get install vsftpd

2.创建guest用户

vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除

sudo useradd virtual

设置virtual的密码为webftp

sudo passwd virtual

编辑virtual用户的主目录并设置shell

sudo vim /etc/passwd

我设置的是virtual:x:1001:1001::/var/www:/bin/false

/var/www virtual的主目录

/bin/false 禁止virtual用户终端登陆

3.设置mysql数据库和用户权限

phpmyadmin中建立vsftp数据库 vsftp用户

建立用户表

create table users(name char(16) binary,passwd char(16)
binary);

并授权vistual用户users表的select权限,并设置密码。

4.设置MySQL的PAM验证

安装libpam-mysql

sudo apt-get install libpam-mysql

要设置vsftpd的PAM验证文件

sudo cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
/etc/pam.d/vsftpd

把内容替换为如下:

auth   
required       
/lib/security/pam_mysql.so     
user=virtual    passwd=webftp  
host=localhost db=vsftp table=users usercolumn=name
passwdcolumn=passwd crypt=2
account required       
/lib/security/pam_mysql.so     
user=virtual    passwd=webftp  
host=localhost db=vsftp table=users usercolumn=name
passwdcolumn=passwd crypt=2

5.设置vsftpd.conf

guest_enable=YES
guest_username=virtual

这两项必须打开,其他配置请查阅vsftpd.conf的配置手册

6.虚拟用户目录的权限改为只能由virtual操作

sudo chown virtual.virtual /var/www
sudo chmod 755 /var/www

virtual获得www文件夹的权限,并设置www文件夹权限为755

至此,最基本的虚拟用户已经完成。

sudo /etc/init.d/vsftpd restart

重启vsftpd服务后即可以用users表中设置的用户名密码进行www文件夹的访问了。

附:
1.安装文件的目录查找命令

dpkg -L 包名称

2.不同用户的个人目录

为每个虚拟用户建立自家目录。首先,在主配置文件中加入以下选项:

user_config_dir=/etc/vsftpd/vsftpd_user_conf

然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:

sudo mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf

为虚拟用户xiaowang建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/xiaowang。

接下来,在xiaowang的个人配置文件中将xiaowang的自家目录修改为/home/xiaowang,配置选项为:

local_root=/home/xiaowang

然后,新建xiaowang目录,并将权限设为vsftpdguest:

经过以上设置,xiaowang登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/xiaowang”目录。

从文件系统层次来看,由于“/home/xiaowang”目录的权限是属于vsftpdguest的,所以其他的虚拟用户同样也可以访问xiaowang的自家目录。解决这个问题也很简单,我们只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。具体做法参照前面第六步中所述,这里不再赘述。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。


推荐阅读
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社区 版权所有