vsFTP可以分为三类登录方式。我们今天进行第三种虚拟用户登录的模式进行配置。精细话管理每个用户的权限 。
1、匿名用户登录
2、本地账户权限登录
3、虚拟用户登录
db4-utils是什么:
装db4-utils是为了使用db_load,生产pam可以识别的文件。
所有的FTP虚拟用户需要使用一个系统用户,这个系统用户不需要密码。
[root@CentOS5 /]#useradd –d /home/vftpsite –s /sbin/nologin vsftpd
vsftpd用户会在vsftpd.conf中用到
#指定虚拟用户的宿主用户。
guest_username=vsftpd
三、添加用户
1. 添加虚拟用户口令文件
[root@CentOS5 /]#vi /etc/vsftpd/vftpuser.txt
添加虚拟用户名和密码,一行用户名,一行密码,以此类推。奇数行为用户名,偶数行为密码。
Yonghuming
Mima
kkpan
kkpan.com
2、使用db_load命令生成虚拟用户口令认证文件。
[root@CentOS5 /]#db_load –T –t hash –f /etc/vsftpd/vftpuser.txt /etc/vsftpd/vftpuser.db
3、编辑vsftpd的PAM认证文件,在全局配置文件中可以看到
pam_service_name=vsftpd
[root@CentOS5 /]#vi /etc/pam.d/vsftpd
将里面其他的都注释掉,添加下面这两行:
auth required pam_userdb.so db=/etc/vsftpd/vftpuser
account required pam_userdb.so db=/etc/vsftpd/vftpuser
关于pam的内容,我会单独列出来。
四、添加虚拟用户的的权限,同样在vsftp.conf 文件中指定配置路径。
用户权限文件是/etc/vsftpd/vconf目录
local_root=/SATA/Date/kkpan.com/
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
#anon_world_readable_only=no
五、就是全局的vsftp.conf配置文件了,保存即可使用,转发别忘记了快盘下载的版权。
# Example config file /etc/vsftpd/vsftpd.conf # anonymous_enable=NO #anon_upload_enable=NO #anon_mkdir_write_enable=YES #设定本地用户可以访问。注意:主要是为虚拟宿主用户,如果该项目设定为NO那么所有虚拟用户将无法访问。 local_enable=YES #设定可以进行写操作 write_enable=YES #设定上传后文件的权限掩码。 local_umask=022 #设定开启目录标语功能。 dirmessage_enable=YES #设定开启日志记录功能。 xferlog_enable=YES #设定端口20进行数据连接。 connect_from_port_20=YES #设定禁止上传文件更改宿主。 #chown_uploads=NO #chown_username=whoever #设定Vsftpd的服务日志保存路径。注意,该文件默认不存在。必须要手动touch出来,并且由于这里更改了Vsftpd的服务宿主用户为手动建立的Vsftpd。必须注意给与该用户对日志的写入权限,否则服务将启动失败。 #xferlog_file=/var/log/xferlog #xferlog_std_format=YES #设定空闲连接超时时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值600,单位秒。 #idle_session_timeout=600 #设定单次最大连续传输时间,这里使用默认。将具体数值留给每个具体用户具体指定,当然如果不指定的话,还是使用这里的默认值120,单位秒。 #data_connection_timeout=300 #nopriv_user=ftpsecure #设定支持异步传输功能。 #async_abor_enable=YES #ascii_upload_enable=YES #ascii_download_enable=YES #设定Vsftpd的登陆标语。 #ftpd_banner=Welcome to blah FTP service. #deny_email_enable=YES #banned_email_file=/etc/vsftpd/banned_emails #500 OOPS: vsftpd: refusing to run with writable root inside chroot() 解决办法 #allow_writeable_chroot=YES #使用户不能离开主目录 #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd/chroot_list #ls_recurse_enable=YES listen=YES #listen_ipv6=NO #设定PAM服务下Vsftpd的验证配置文件名。因此,PAM验证将参考/etc/pam.d/下的vsftpd文件配置。 pam_service_name=vsftpd #设定userlist_file中的用户将不得使用FTP。 userlist_enable=YES tcp_wrappers=YES use_localtime=YES # listen_port=21 chroot_local_user=YES idle_session_timeout=300 data_connection_timeout=1 #设定启用虚拟用户功能。 guest_enable=YES #指定虚拟用户的宿主用户。 guest_username=vsftpd #设定虚拟用户的权限符合他们的宿主用户。Vsftp的配置文件存放 user_config_dir=/etc/vsftpd/vconf virtual_use_local_privs=YES pasv_min_port=10060 pasv_max_port=10090 accept_timeout=5 connect_timeout=1
六、重启vsftpd服务,修改服务conf文件需要restart vsftp服务,修改用户权限是不需要重启的 。随时生效。
[root@CentOS5 /]#service vsftpd restart