debian(ubuntu) 系统 vsftpd 配置虚拟帐号

来源:互联网 发布:邢台学院教务处网络 编辑:程序博客网 时间:2024/06/06 01:25

首先说明

帐号的认证通过pam认证方式,采用pam的mysql插件.


安装libpam-mysql和vsftpd

apt-get install libpam-mysql
apt-get install vsftpd


mysql的库,表,字段,假设如下:

库名 DBV
表名 TB
字段 USERPASSWORD
数据库的帐号密码 DBUSER DBPASSWROD


/etc/pam.d/vsftpd的内容如下

auth required pam_mysql.so user=DBUSER passwd=DBPASSWROD host=localhost db=DBVtable=TBusercolumn=USER passwdcolumn=PASSWORDcrypt=2
account required pam_mysql.so user=DBUSER passwd=DBPASSWROD host=localhost db=DBV table=TB usercolumn=USER passwdcolumn=PASSWORD crypt=2

上面的crypt表示口令字段的加密方式:crypt=0,明文;crypt=1,UNIX系统的DES加密方式;crypt=2,MySQL的password()。


/etc/vsftpd.conf 是vsftpd的配置文件,内容:

listen=YES
anonymous_enable=NO
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
virtual_use_local_privs=YES
xferlog_std_format=YES
chroot_local_user=YES
guest_enable=YES
guest_username=www-data
user_sub_token=$USER
user_config_dir=/etc/vsftpd_user_conf/
pam_service_name=vsftpd
local_enable=YES
write_enable=YES

上面 guest_username=www-data, 指定系统帐号www-data为vsftpd虚拟帐号对应的真实系统帐号,当然也可以用其他的系统帐号(实际上我配置vsftpd是为了apache虚拟主机用的).
user_config_dir=/etc/vsftpd_user_conf/ 虚拟用户私有配置文件所在的目录.


下面添加一个虚拟帐号

帐号名 gogogo
密码   555555
私有目录 /var/vsftpd/gogogo

步骤如下:

1,在mysql中添加信息:
 INSERT INTO TB(USER,PASSWORD)values("gogogo",  password("555555"));
2,在/etc/vsftpd_user_conf/ 目录下建立文件 gogogo,它指定了每个帐号自己的私有目录,其内容如下
local_root=/var/vsftpd/gogogo


OK,需要注意的是

1, /var/vsftpd/gogogo要属于www-data,否则无读写权.
2, /etc/vsftpd_user_conf/gogogo 必须属于 root



0 0