首先安装vsftpd、pam验证模块、db4数据存储(pam-devel,pam-devel,pam、db4-utils),直接把相关的都装上,省着麻烦
yum install vsftpd pam pam-* db4 db4-*
安装好后,进入vsftpd的配置文件目录
/etc/vsftpd
cd /etc/vsftpd/
创建一个保存用户及密码的文件
touch virtual_login
vim virtual_login
向其添加用户(一行用户一行是密码),并保存
admin
123456
将文本内的帐号及密码添加到db4的数据库文件内
db_load -T -t hash -f /etc/vsftpd/virtual_login /etc/vsftpd/virtual_login.db
配置pam内vsftpd的验证文件,添加验证模块路径,编辑vsftpd的pam配置文件
vim /etc/pam.d/vsftpd
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/virtual_login
创建一个vsftpd服务的用户vsftpd,你也可以使用-d来指定他的家目录
useradd -s /sbin/nologin vsftpd useradd -d /var/ftp/kinggoouser -s /sbin/nologin ftp.kinggoouser useradd -d /var/ftp/comuser -s /sbin/nologin ftp.comuser
cat /etc/vsftpd/vsftpd.conf |grep -v -E "^(#|$)"
#--------内容如下------------ anonymous_enable=NO #不允许匿名访问 local_enable=YES #设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问 write_enable=YES #允许写操作 local_umask=022#创建或上传后文件的权限掩码 anon_upload_enable=NO #禁止匿名用户上传 anon_mkdir_write_enable=NO #禁止匿名用户创建目录 dirmessage_enable=YES #进入目录时可以显示一些设定的信息,可以通过message_file=.message来设置 xferlog_enable=YES #开启日志 connect_from_port_20=YES #主动连接的端口号 chown_uploads=NO #设定禁止上传文件更改宿主 xferlog_file=/var/log/vsftpd.log #日志路径,记得自己创建一下并且对这个文件进行chown vsftpd.vsftpd /var/log/vsftpd.log xferlog_std_format=YES #就是格式话日志格式的,你懂得。使用wu ftp软件时设置yes就行 nopriv_user=vsftpd #因为我们把vsftpd的shell设置为nobody 了,所以 这个地方写vsftpd就可以啦!当然或者可以写成系统内的nobody async_abor_enable=YES #设定支持异步传输功能 ascii_upload_enable=YES #设定支持ASCII模式的上传 ascii_download_enable=YES #设定支持ASCII模式的上传 ftpd_banner=Welcome to kinggoo.com FTP service.#登陆欢迎语 chroot_list_enable=YES #限定在自己的目录内,不让他出去,就比如如果设置成NO,那么当你登陆到ftp的时候,可以访问服务器的其他一些有权限目录。设置为YES后即,锁定你的目录了 chroot_list_file=/etc/vsftpd/chroot_list #待会要把用户写到这个里面,写到这里的用户乖乖的呆在家目录下吧 listen=YES #以standalone方式来启动 pam_service_name=vsftpd #/etc/pam.d/下的vsftpd文件 userlist_enable=YES #在/etc/vsftpd/user_list中的用户将不得使用FTP tcp_wrappers=YES #支援 TCP Wrappers 的防火墙机制 guest_enable=YES #启用虚拟用户功能 virtual_use_local_privs=YES #虚拟用户的权限符合他们的宿主用户 user_config_dir=/etc/vsftpd/vsftpd_config
创建一下保存虚拟用户配置文件的地方
mkdir /etc/vsftpd/vsftpd_config/
顺便把那个日志文件也创建了吧,怕忘记
touch /var/log/vsftpd.log chown -R vsftpd.vsftpd /var/log/vsftpd.log
创建要将哪些用户固定在家目录的配置文件
touch /etc/vsftpd/chroot_list #例chroot_list内容: kinggoouser kinggoouser2
将需要固定用户目录的虚拟用户名字写进去即可。每行写一个即可
好了,进入保存虚拟用户配置的地方
cd /etc/vsftpd/vsftpd_config/
创建kinggoouser,还有comuser配置文件(如果你有其他用户,则一一效仿即可,每个配置项最后都不能有空格)
cat kinggoouser #---------内容如下-------------- guest_enable=yes #起用虚拟用户 ,centos下yes必须为小写字母 guest_username=ftp.kinggoouser #映射本地虚拟用户 local_root=/var/ftp/kinggoouser #如果当时创建用户的时候锁定一个目录了,那就可以不写 idle_session_timeout=600#用户会话空闲后10分钟,嘿嘿你懂的 data_connection_timeout=120#将数据连接空闲2分钟断,如上↑ max_clients=10#最大客户端连接数 max_per_ip=5#每个ip最大连接数 local_max_rate=0#限制上传速率,0为无限制
保存退出
重启、、、
原文:http://www.cnblogs.com/doudou816/p/3623719.html