免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 999 | 回复: 0
打印 上一主题 下一主题

Vsftpd虚拟用户设置(更正ubuntu.org的错误) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-03 15:40 |只看该作者 |倒序浏览
Vsftpd虚拟用户设置
                        出自Ubuntu中文
                       
                                                                       
                       
本文作者:dbzhang800
授权许可:
创作共享协议
适用版本:
文章状态:完成
目录 [
隐藏
]

[
编辑
] 目标
首先我们假定你已经安装了vsftpd,并在/home/ftp目录下建立了以下两个子目录
  • dbzh1
  • dbzh2

下面,我们要建3个虚拟用户,密码分别是用户名後加"00"
  • db1  
  • db2  
  • db3

使得
  • 用户db1 的主目录为 dbzh1 ,在该目录下只有只读权限
  • 用户db2 的主目录为 dbzh2,在该目录下只有只读权限
  • 用户db3 的主目录为 dbzh1 ,在该目录下拥有所有权限

[
编辑
] 创建虚拟用户数据库
[
编辑
] 创建文本文件loguser.txt
格式如下:
user_id
password
于是,我们loguser.txt文件的内容为
db1
db100
db2
db200
db3
db300
[
编辑
] 生成数据库
如果你以前没装过libdb3-util 或者你不清楚装没装,需先执行下面的命令
sudo apt-get  install  libdb3-util
然後,我们执行         
sudo db3_load -T -t hash -f loguser.txt /etc/vsftpd_login.db
  
最後设置一下数据库文件的访问权限
sudo chmod 600 /etc/vsftpd_login.db
[
编辑
] 配置PAM文件
新建/etc/pam.d/vsftpd.vu 内容如下:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd_login
  • 我们上一步建立的数据库 vsftpd_login 在此处被使用
  • 我们建立的虚拟用户将采用PAM进行验证,这是通过/etc/vsftpd.conf文件中的 语句pam_service_name=vsftpd.vu来启用的,稍後你将发现。

[
编辑
] 为虚拟用户创建本地系统用户
新建一个系统用户virtual,用户家目录为/home/ftp, 用户登录终端设为/bin/false(即使之不能登录系统)
sudo useradd virtual -d /home/ftp -s /bin/false
sudo chown virtual.virtual /home/ftp
[
编辑
]  /etc/vsftpd.conf
根据需要创建/etc/vsftpd.conf,一般要确保含有一下设置:
listen=YESanonymous_enable=NOdirmessage_enable=YESxferlog_enable=YESxferlog_file=/var/log/vsftpd.logxferlog_std_format=YESchroot_local_user=YESguest_enable=YESguest_username=virtualuser_config_dir=/etc/vsftpd_user_confpam_service_name=vsftpd.vu local_enable=YES
需要增加
secure_chroot_dir=/var/run/vsftpd
到现在为止,我们的3个用户都可以工作了,可是它们的根目录现在都是/home/ftp,权限也都一样。 那么怎么才能完成我们预定的目标呢?
[
编辑
]  /etc/vsftpd_user_conf
在上面的配置中,有这么一行
user_config_dir=/etc/vsftpd_user_conf
现在,我们要把各个用户的配置文件放到目录/etc/vsftpd_user_conf中
sudo mkdir /etc/vsftpd_user_conf
cd /etc/vsftpd_user_conf
sudo touch db1 db2 db3
db1文件中的内容如下
local_root=/home/ftp/dbzh1
同样,db2文件中的内容
local_root=/home/ftp/dbzh2
那么,db3的内容呢? 其实也很简单
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp/dbzh1
[
编辑
]  完成
重启vsftpd我们就可以看到效果了^_^
/etc/init.d/vsftpd start|restart
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/39518/showart_455890.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP