vsftp + pgsql 虚拟用户认证

 

软件
vsftpd /usr/ports/ftp/
postgresql /usr/ports/database/
pam_pgsql /usr/ports/security


创建数据表
su pgsql
createdb vsftp
psql vsftp

create table ftpuser (
id serial,
users varchar(32) not null,
ftppwd varchar(32) not null,
expired bool default false not null,
newtoken bool default false not null,
unique (id)
);

插入一些记录,测试用.
例如:
---------------------------------------------
|id | users  | ftppwd  | expired | newtoken |
-----------------------------------------
|1  | upload | upload  |  false  |  false   |
---------------------------------------------

创建角色,用于pam论证时登录数据库.
create role ftplogin with password 'loginpwd'
alter role ftplogin with login


修改pam_pgsql认证设置
/etc/pam_pgsql.conf

database = vsftp  #pgsql里的数据库名
user = ftplogin   #登录数据库的用户名,就是刚才创建的role.
password = loginpwd    #role的密码
table = ftpuser   #记录用户的表名
user_column = users   #ftp 用户名对应的字段
pwd_column = ftppwd   #密码字段
expired_column = expired  #是否失效, 为false的才能登录.
newtok_column = newtoken  #是否需要改密码.


创建pam认证服务设置
/etc/pam.d/vsftpd

# auth
auth            required        pam_pgsql.so

# account
account         required        pam_pgsql.so

# password
password        required        pam_pgsql.so


创建一个系统用户:virtual.
可设为nologin.

修改vsftpd配置文件
/usr/local/etc/vsftpd.conf

guest_enable=YES #允许虚拟用户
guest_username=virtual #虚拟用户登录时使用此帐号运行vsftpd
pam_service_name=vsftpd #pam认证的服务名与/etc/pam.d/中的相同.
user_config_dir=/usr/local/etc/vsftpd_user_conf #为虚拟用户进行单独配置的配置文件的目录.

 
在/usr/local/etc/创建目录vsftpd_user_conf
其中创建与虚拟用户同名的配置文件.

/usr/local/etc/vsftpd_user_conf/upload
其内容:
local_root=/home/upload #指定upload虚拟用户的主目录是/home/upload

在/home里创建upload目录.
chown virtual:virtual upload   #将所有者改为virtual.

注,为实现匿名用户只读,特定用户可读可写可删,可以进行单独配置.
关掉vsftpd.conf里的匿名用户上传权限,这时虚拟用户也不能上传.
修改vsftpd_user_conf/upload文件.
加入:
anon_world_readable_only=NO   #开放匿名用户访问
anon_upload_enable=YES   #开放上传权限
anon_mkdir_write_enable=YES  #开放创建目录权限
这样就可以特定用户可读可写.

 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值