【IT168 服务器学院】debainsarge下用postgresql给vsftp配置虚拟用户
1.切换到root,安装vsftpd libpam-pgsql postgresql三个软件包
2.修改/etc/vsftpd.conf,加上下面五行
local_enable=YES
guest_enable=YES
guest_username=vsftpv
virtual_use_local_privs=YES
write_enable=YES
3.useradd vsftpv -d /home/ftp
创建一个系统用户vsftpv
cd /home/ftp
mkdir i
chown vsftpv:users i
chmod 755 i
4.编辑/etc/postgresql/pg_hba.conf
找到文件中的这两行
# All other connections by UNIX sockets
local all all ident sameuser
将第二行修改为
local all all password
5.重新启动postgresql
6.切换到postgres用户(一般只能先切换到root用户,在root用户下切换到postgres用户)。
运行createdb vsftp来创建数据库vsftp。
运行psql vsftp,就进入了psql。
在vsftp=#提示符下
create user vsftpident with password ''0w03f80'' nocreatedb nocreateuser;
创建用户vsftpident
create table users(name varchar(10), pass varchar(40), expired boolean, needchangepass boolean);
创建一个表user
insert into users values(''lhy'', ''liuhuayu'',''f'',''f'');
插入一行记录,lhy就是虚拟用户用户名,liuhuayu就是密码。
grant select on users to vsftpident;
加权限
q退出psql
7.回到root下,编辑/etc/pam.d/vsftpd
首先把所有内容都注释掉,然后加入如下3行
auth required pam_pgsql.so
account required pam_pgsql.so
password required pam_pgsql.so
8.创建/etc/pam_pgsql.conf,内容如下:
database = vsftp
user = vsftpident
password = 0w03f80
table = users
user_column = name
pwd_column = pass
expired_column = expired
newtok_column = needchangepass
9.重新启动vsftpd
10.ftp 127.0.0.1可以用用户lhy密码liuhuayu登录了
可以在i目录下有完全权限。
注:网上似乎中文资料不多,自己摸索了一下
但对postgresql本身不熟悉,所以不好说方式是不是笨拙。
内容中都几乎是必须的东西,而真正用的时候还要加一些东西(比如安全和方便考虑)
第4步是vsftp+postgres中文资料中从未没提到过的,也让我失败了很长时间和很多次,后来到处乱碰找到的问题所在。