Vsftp与PAM虚拟用户

Vsftp与PAM虚拟用户php



使用yum 安装vsftphtml

  
  
  
  
  1. yum install vsftpd pam pam-* db4 db4-* 


建立一个保存用户及密码的文件linux

  
  
  
  
  1. cd /etc/vsftpd/ 
  2. touch virtual_login 


添加用户(一行用户一行是密码shell

  
  
  
  
  1. vim  virtual_login 

dongnan
nandong
数据库


将文本内的账号及密码添加到db4的数据库文件内 vim

  
  
  
  
  1. db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db 


将vsftpd原内容所有注释掉,并添加以下:
centos

  
  
  
  
  1. sed -ir 's/^/#/g' /etc/pam.d/vsftpd 
  2.  
  3. echo -n ' 
  4. auth    required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login 
  5. account required   /lib64/security/pam_userdb.so   db=/etc/vsftpd/virtual_login 
  6. >> /etc/pam.d/vsftpd 


建立一个vsftpd服务的用户vsftpd,你也可使用-d来指定他的家目录服务器

  
  
  
  
  1. useradd -s /sbin/nologin vsftpd 
  2. useradd -d /var/ftp/dongnan -s /sbin/nologin dongnan 


更改 vsftpd的配置文件
session

  
  
  
  
  1. cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak 
  
  
  
  
  1. awk '! /^(#|$)/' /etc/vsftpd/vsftpd.conf.bak  

#不容许匿名访问
anonymous_enable=NO
#设定本地用户能够访问。注意:主要是为虚拟宿主用户,若是该项目设定为NO那么全部虚拟用户将没法访问
local_enable=YES
#容许写操做
write_enable=YES
#建立或上传后文件的权限掩码
local_umask=022
#禁止匿名用户上传
anon_upload_enable=NO
#禁止匿名用户建立目录
anon_mkdir_write_enable=NO
#进入目录时能够显示一些设定的信息,能够经过message_file=.message来设置
dirmessage_enable=YES
#开启日志
xferlog_enable=YES
#主动链接的端口号
connect_from_port_20=YES
#设定禁止上传文件更改宿主
chown_uploads=NO
#日志路径,记得本身建立一下而且对这个文件进行chown  vsftpd.vsftpd /var/log/vsftpd.log
xferlog_file=/var/log/vsftpd.log
#就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行
xferlog_std_format=YES
#由于咱们把vsftpd的shell设置为nobody 了,因此 这个地方写vsftpd就能够啦!固然或者能够写成系统内的nobody
nopriv_user=vsftpd
#设定支持异步传输功能
async_abor_enable=YES
#设定支持ASCII模式的上传
ascii_upload_enable=YES
#设定支持ASCII模式的上传
ascii_download_enable=YES
#登录欢迎语
ftpd_banner=Welcome to dongnan FTP service.
#限定在本身的目录内,不让他出去,就好比若是设置成NO,那么当你登录到ftp的时候,能够访问服务器的其余一些有权限目录。设置为YES后即,锁定你的目录了
chroot_list_enable=YES
#待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧
chroot_list_file=/etc/vsftpd/chroot_list
#以standalone方式来启动
listen=YES
#/etc/pam.d/下的vsftpd文件
pam_service_name=vsftpd
#在/etc/vsftpd/user_list中的用户将不得使用FTP
userlist_enable=YES
#支援 TCP Wrappers 的防火墙机制
tcp_wrappers=YES
#启用虚拟用户功能
guest_enable=YES
#虚拟用户的权限符合他们的宿主用户
virtual_use_local_privs=YES
#虚拟用户我的vsftpd的配置文件存放路径。vsftpd_config是文件夹啊。注意:配置文件名必须和虚拟用户名相同
user_config_dir=/etc/vsftpd/vsftpd_config

建立一下保存虚拟用户配置文件的目录
app

  
  
  
  
  1. mkdir /etc/vsftpd/vsftpd_config/ 


建立vsftp日志文件

  
  
  
  
  1. touch /var/log/vsftpd.log 
  2. chmod 600 /var/log/vsftpd.log 
  3. chown vsftpd.vsftpd /var/log/vsftpd.log 


建立要将哪些用户固定在家目录的配置文件

  
  
  
  
  1. touch /etc/vsftpd/chroot_list 


将须要固定用户目录的用户名字写进去便可。

  
  
  
  
  1. cd /etc/vsftpd/vsftpd_config/ 
  
  
  
  
  1. cat > dongnan << EOF 
  2. #起用虚拟用户,centos下yes必须为小写字母 
  3. guest_enable=yes 
  4. #映射本地虚拟用户 
  5. guest_username=dongnan 
  6. #若是当时建立用户的时候锁定一个目录了,那就能够不写 
  7. local_root=/var/ftp/dongnan 
  8. #用户会话空闲后10分钟
  9. idle_session_timeout=600 
  10. #将数据链接空闲2分钟断 
  11. data_connection_timeout=120 
  12. #最大客户端链接数 
  13. max_clients=10 
  14. #每一个ip最大链接数 
  15. max_per_ip=5 
  16. #限制上传速率,0为无限制 
  17. local_max_rate=0 
  18. EOF 


启动vsftp

  
  
  
  
  1. /etc/init.d/vsftpd start 

Starting vsftpd for vsftpd: 500 OOPS: bad bool value in config file for: anon_upload_enable
注意: 这里出现了 500 OOPS 之类的错误,请使用如下命令去除"多余的空格",再次启动vsftp 便可。

  
  
  
  
  1. sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd.conf 
  2. sed -ir 's/[ ]*$//g'  /etc/vsftpd/vsftpd_config/dongnan 



参考
Vsftp服务安装搭建,虚拟用户配置
http://kinggoo.com/app-installvsftpdconf.htm

第二十一章、檔案伺服器之三: FTP 伺服器
http://linux.vbird.org/linux_server/0410vsftpd.php

 

9.4 账号和组配置文件

小知识:
/sbin/nologin和/bin/false的区别
/bin/false是最严格的禁止login选项,一切服务都不能用,而/sbin/nologin只是不容许系统login,可使用其余ftp等服务。

 

更多请:
linux 相关  274134275 , 37275208(已满) vmware 虚拟化相关  166682360

相关文章
相关标签/搜索