任务背景:

公司的JAVA应用服务器是centOS6.6的,会把各个tomcat的日志记录在/var/log/java和/var/log/java_no两个文件夹下,测试和开发部的同学经常需要到我们运维这边看日志,于是搭建ftp服务器将日志共享出去,让其只能下载查看不能修改及上传。


实施过程:

yum install vsftpd
service vsftpd restart

默认是支持匿名用户访问的,在本地测试已经可以访问到/var/ftp/pub了

但是日志是存放在两个不同的文件夹的,这里使用mount --bind解决问题

mkdir /var/ftp/pub/java
mkdir /var/ftp/pub/java_no
mount --bind /var/log/java /var/ftp/pub/java
mount --bind /var/log/java_no /var/ftp/pub/java_no
service vsftpd restart

再次访问则在pub目录下有java和java_no文件夹,分别挂接了两个日志文件夹,问题解决。


总结:

vsftpd服务安装后,

默认是允许用户匿名登录的,anonymous_enable=YES

要设置存放日志的文件夹权限为755,让其他用户只能查看和下载不能修改


另外,vsftpd.conf中的常用设置:

local_umask=022  //上传文件的默认掩码

local_root=/opt/var/ftp1 虚拟用户的根目录(根据实际修改,默认无此项)

anon_root=opt/var/ftp1  (匿名用户的默认目录,课根据需要修改,配置文件默认无此项)

anon_umask=022 掩码

anon_upload_enable=YES 


常见问题:

553 Could not create file

一般都是SELinux的问题,设置SELinux的一个值,重启服务器即可。

setsebool -P ftpd_disable_trans 1 
service vsftpd restart

500 OOPS: bad bool value in config file for: write_enable

注意你的CentOS FTP服务文件中保证每一行最后没有任何空格,一般出错就是在多余的空格上。


mount --bind

mount --bind 是将一个目录中的内容挂载到另一个目录上,这个命令使得自己搭建的FTP要共享某个目录的时候变得特别方便

mount 命令需先建立好挂载点,且原挂载点下的文件在unmount后才能可见可用,要慎用mount命令。