linux vsftpd 创建虚拟用户 过程记录

之前用系统账户作为ftp的登录账户,比较不安全,改用虚拟账户。步骤如下:
 
1.安装vsftpd、db_load,省略
2.在一个目录创建一个用户名密码文件,比如
[plain]  view plain copy
  1. vi login.txt #输入用户名密码奇数行是用户名、偶数行是密码  
  2. test1  
  3. testpwd  
  4. test2  
  5. testpwd  
3.生成db文件
[plain]  view plain copy
  1. db_load –T –t hash –f login.txt /etc/vsftpd/vsftpd_login.db  
4.修改权限
[plain]  view plain copy
  1. chmod 600 /etc/vsftpd/vsftpd_login.db  
5.配置pam文件
[plain]  view plain copy
  1. vi /etc/pam.d/vsftpd.v #输入以下配置  
  2. auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  3. account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  4. #后来登录ftp出现530错误,需要把上面两行改为:可能是跟64位系统有关  
  5. auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login  
  6. account required pam_userdb.so db=/etc/vsftpd/vsftpd_login  
6.创建虚拟用户
[plain]  view plain copy
  1. useradd vsftpd -d /usr/local/vsftpd -s /sbin/nologin  
-d 指定home目录,-s设置成不可登录系统的用户
修改目录权限chown -R vsftpd /usr/local/vsftpd
7.修改vsftpd配置文件
[plain]  view plain copy
  1. vi /etc/vsftpd/vsftpd.conf  
  2. anonymous_enable=NO  
  3. dirmessage_enable=YES  
  4. chroot_local_user=YES  
  5. guest_enable=YES  
  6. guest_username=vsftpd  
  7. pam_service_name=vsftpd.v  
  8. user_config_dir=/etc/vsftpd/v_user_conf  
  9. local_root=/usr/local/vsftpd  
8.创建用户配置文件
[plain]  view plain copy
  1. cd /etc/vsftpd  
  2. mkdir v_user_conf  
  3. vi v_user_conf/test1 #给全部权限,限定根目录  
  4. local_root=/usr/local/vsftpd/test1  
  5. anon_world_readable_only=NO  
  6. write_enable=YES  
  7. anon_mkdir_write_enable=YES  
  8. anon_upload_enable=YES  
  9. anon_other_write_enable=YES  
  10.   
  11. vi v_user_conf/test2 #给全部权限,限定根目录  
  12. local_root=/usr/local/vsftpd/test2  
  13. anon_world_readable_only=NO  
  14. write_enable=YES  
  15. anon_mkdir_write_enable=YES  
  16. anon_upload_enable=YES  
  17. anon_other_write_enable=YES  
9.重启vsftpd
[plain]  view plain copy
  1. service vsftpd restart  

用设置的test1、test2登录可以了。

由于编码的问题,如果将以上代码直接copy到linux中,会有问题。所以,最好自己敲代码。
以上为转载。以下自己写的:
修改虚拟用户密码:
1.编辑login.txt
2.执行:db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
3.重启vsftp:service vsftpd restart 

遇到问题:
1.-bash: db_load: command not found。
解决方法:参考http://blog.chinaunix.net/uid-25324849-id-223412.html 安装相应的rpm即可
2. 553 Could not create file

    a.先确保你的SELinux关闭了,命令如下:

    sestatus

    返回“SELinux status: disabled”,可以进行下一步。否则看这篇文章:http://heipark.iteye.com/blog/1671578

    b.确保你的上传目录权限为777



新增虚拟用户,以新增testHello为例
1.编辑login.txt。新增用户名testHello,密码testHelloPasswd
testHello
testHelloPasswd
2.执行:db_load -T -t hash -f login.txt /etc/vsftpd/vsftpd_login.db
3.赋予权限
  1. cd /etc/vsftpd  
  2.  
  3. vi v_user_conf/testHello  
  4. local_root=/usr/local/vsftpd/testHello  #指定根目录 
  5. anon_world_readable_only=NO  
  6. write_enable=YES  
  7. anon_mkdir_write_enable=YES  
  8. anon_upload_enable=YES  
  9. anon_other_write_enable=YES 
4.把指定的根目录testHello赋予真实linux用户vsftpd(这个用户在前面已建过)
chown -R vsftpd   /usr/local/vsftpd/testHello/
5.在/etc/vsftpd/user_list文件中新增用户testHello
6.. 重启vsftp: service vsftpd restart
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值