FC4下用pam_pwdfile.so来创建虚拟用户[原创-有参考]

红薯 发布于 2009/05/06 11:05
阅读 378
收藏 0

应斑竹意思将标题改了,不过我认为都算是priv_sock_get_result终极解决办法(因为我不用它了嘛:em02:)

这几天都在搞virtual user 这个东东,现在终于搞好了
现把解决步骤同大家分享下:
首先大家到这里下载pam_pwdfile-0.99(装过了的朋友可跳过这步了)
http://cpbotha.net/pam_pwdfile.html

安装pam_pwdfile(很简单,我觉得:P)
1)
下载pam_pwdfile,下完后再做下面的

#wget http://www.us.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.75.tar.bz2


#bunzip2 -c Linux-PAM-0.75.tar.bz2 | tar -xvf -
#cd Linux-PAM-0.75/modules
#tar -xzvf /你存放pam_pwdfile-0.99.tar.gz的路径/pam_pwdfile-0.99.tar.gz(解压在modules下面,不要放到其它地方哦.....)
#cd ..
#rm default.defs(有就删啦,无就算了)
#ln -s defs/redhat.defs default.defs (在FC4下我选redhat.defs,如果你不是FC4就看着办吧)


在Linux-PAM-0.75/下做这步(快完了......)
#make

在make这步成功了(不成功不要找我哦.....)就会在Linux-PAM-0.75/modules/pam_pwdfile-0.99/发现一个名叫pam_pwdfile.so的文件,
哈哈,我要的就是它啦,快把它复制到/lib/security/下面(这点好重要哦.....)

2)准备工作做完了,下面开始配置virtual user

2-1)vsftpd.conf配置
anonymous_enable=NO


local_enable=YES
write_enable=NO
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
pam_service_name=vsftpd
connect_from_port_20=YES
ftpd_banner=Welcome to S_ FTP server.
listen=YES
listen_port=2121
one_process_model=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtualus


2-2)修改/etc/pam.d/vsftpd(把原来的注释掉!!)
auth    required pam_pwdfile.so pwdfile /etc/vsftpd/passwd_ftp 


account required pam_permit.so


2-3)新建一个对虚拟用户密码进行MD5加密的脚本/etc/vsftpd/filter.pl  在里面输入如下内容:
#! /usr/bin/perl -w 


use strict; 

# filter "user:cleartext" lines into "user:md5_crypted" 
# probably requires glibc 

while (<>) { 
    chomp; 
    (my $user, my $pass) = split /:/, $_, 2; 
    my $crypt = crypt $pass, '$1$' . gensalt(8); 
    print "$user:$cryptn"; 


sub gensalt { 
    my $count = shift; 
    my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z'); 
    my $s; 
    $s .= $salt[rand @salt] for (1 .. $count); 
    return $s; 


2-4)修改filter.pl属性
#chmod +x /etc/vsftpd/filter.pl

2-5)新建一个建立virtual user 的文本文件us.txt  内容为:
qq:123              (pp是虚拟用户,123是他的密码)
pp:456

2-6)将虚拟用户信息写入passwd_ftp (做了这步后就可以删除us.txt了,安全嘛,忘记密码也不要找我:em11:)
#perl /etc/vsftpd/filter.pl ./us.txt > /etc/vsftpd/passwd_ftp


3)重启vsftpd
#service vsftpd restart

4)第四步不用我说了吧.呵呵..........

大功告成,放弃了一个中午觉来写它,哎,又要上课了.刚好.觉得好的就顶一下吧.

[  本帖最后由 discuz213 于 2005-11-3 17:51 编辑  ]



加载中
返回顶部
顶部