任务背景:
公司的JAVA应用服务器是centOS6.6的,会把各个tomcat的日志记录在/var/log/java和/var/log/java_no两个文件夹下,测试和开发部的同学经常需要到我们运维这边看日志,于是搭建ftp服务器将日志共享出去,让其只能下载查看不能修改及上传。
实施过程:
yum install vsftpdservice vsftpd restart
默认是支持匿名用户访问的,在本地测试已经可以访问到/var/ftp/pub了
但是日志是存放在两个不同的文件夹的,这里使用mount --bind解决问题
mkdir /var/ftp/pub/javamkdir /var/ftp/pub/java_nomount --bind /var/log/java /var/ftp/pub/javamount --bind /var/log/java_no /var/ftp/pub/java_noservice 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命令。