selinux导致ftp上传失败 工作中的真实案例

这是一台squid代理服务器(一台式机,安装的是redhat 5.4 64位操作系统),每天下午4点一台服务器通过ftp上传主机数据库巡检报告到这台代理PC机的一个用户家目录下的xunjian目录下,这台PC再通过发送邮件的方式将巡检报告发给组内成员,进行巡检 
此为背景,之前的selinux设置的为Permissive,不料同事中午睡觉的时候,脚这么一碰,将这台代理PC重启了,重启后,连续2天的巡检报告都没有通过邮件收到,赶紧解决吧

1、手动的执行ftp上传动作,报如下错误:553 Could not create file. 

[email protected]:~/xunjian/0108> ftp 192.168.1.123 
Connected to 192.168.1.123. 
220 (vsFTPd 2.0.5) 
Name (192.168.1.123:oracle): oracle 
331 Please specify the password. 
Password: 
230 Login successful. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp>binary 
200 Switching to Binary mode. 
ftp> put xunjian_0108.zip 
local: xunjian_0108.zip remote: xunjian_0108.zip 
229 Entering Extended Passive Mode (|||10717|) 
553 Could not create file.

2、代理PC的oracle家目录,肯定是有读写权限的,因为是代理PC重启导致的,突然想到selinux若开启的话,是不允许用户的家目录进行ftp的,需要将ftp_home_dir这个sebool打开,如下所示: 

[[email protected] ~]# getenforce 
Enforcing 
[[email protected] ~]# getsebool -a | grep ftp_home_dir 
ftp_home_dir --> off 
[[email protected] ~]# setsebool ftp_home_dir on

3、这时候去上传,就可以成功了,如下所示 

[email protected]:~/xunjian/0108> ftp 192.168.1.123 
Connected to 192.168.1.123. 
220 (vsFTPd 2.0.5) 
Name (192.168.1.123:oracle): oracle 
331 Please specify the password. 
Password: 
230 Login successful. 
Remote system type is UNIX. 
Using binary mode to transfer files. 
ftp> bi 
200 Switching to Binary mode. 
ftp> put xunjian_0108.zip 
local: xunjian_0108.zip remote: xunjian_0108.zip 
229 Entering Extended Passive Mode (|||19974|) 
150 Ok to send data. 
100% |***********************************************************************| 577 KB 2.31 MB/s 00:00 ETA 
226 File receive OK. 
591290 bytes sent in 00:00 (2.18 MB/s)

4、另外一种方式,就是将selinux设置为Permissive 

[[email protected] ~]# getenforce 
Enforcing 
[[email protected] ~]# setenforce 0 
[[email protected] ~]# getenforce 
Permissive

5、同时在/etc/rc.local中添加这么一行,那么下次系统重启后,就不会发生这样的情况了 

[[email protected] ~]# which setenforce 
/usr/sbin/setenforce 
[[email protected] ~]# cat /etc/rc.local | tail -n 1 
/usr/sbin/setenforce 0

时间: 2024-10-22 14:54:02

selinux导致ftp上传失败 工作中的真实案例的相关文章

使用Apache Commons Net API实现FTP上传下载过程中的坑点

最近项目需要实现FTP上传.下载功能,采用了Apache Commons Net API.代码很快就完成了,但由于对相关API使用场景不是很熟悉,走了一些弯路,抽一点时间做一下总结. A)主动被动模式选择:FTP主动模式和被动模式的详细介绍可以参考(http://blog.csdn.net/huanggang028/article/details/41248663).大概意思就是主动模式是客户端向服务端发送PORT命令,然后服务端通过20数据端口连接客户端开启的端口,然后发送数据:被动模式是客户

FTP上传失败报错227 Entering Passive Model (222,111,8,111,10,40)

昨天为了一个ftp问题折腾了一天.问题背景:原来有个接口涉及到上传文件,服务端更换了ftp服务器,我们这边需要刷新连接服务端的ip和端口配置,代码没动.联调环境和验收环境都测试通过,一到生产环境就歇菜了.我们手工连接ftp并上传文件正常,就是跑接口由程序上传不行.根据日志信息定位发现在登录ftp后做了两个事情,一个是把传输模式设置为二进制,一个是设置被动模式,用apache的Ftpclient实现: ftpClient.enterLocalPassiveMode(): 从代码层面看不出问题,因为

Jenkins通过FTP上传站点太多文件导致太慢且不稳定,切换为压包上传再解压的思路(asp.net)

在本地先处理好要上传的站点文件之后,可能会因为一些网页切图导致ftp上传不稳定,中断,或者文件占用的问题. 那么换了一种实现思路,要借助jenkins的工具jenkins-cli.jar. 解决思路: 1.本地处理好奥上传的站点文件,通过压缩软件进行打包,其中压包的命名有规律,比如日期+BuildID的形式. 2.用FTP插件进行上传到外网的目录. 3.外网的机器上也同样安装Jenkins的环境,并新建好一个Job,这个Job增加参数化构建,参数为BuildID,然后增加批处理进行BuildID

本地虚拟机中匿名ftp上传文件失败的问题

在10.10.50.230中新建了一个匿名的ftp服务器,结果在10.10.50.241中上传文件时提示: local: README.txt remote: /var/ftp/pub/upload 227 Entering Passive Mode (10,10,50,230,117,8). 553 Could not create file.   由于搭建步骤是完全按照标准文档建立的,vsftp.conf的设置应该没有问题,检查:getsebool -a|grep ftp 发现: allow

2.1.5基础之命令行链接ftp dos中的ftp上传下载文件

Windows命令行batcmd脚本的应用之自动备份 异地备份2.1.5基础之命令行链接ftp dos中的ftp上传下载文件 讲解环境 VMware Workstation 12 桌面虚拟计算机软件创建虚拟机安装操作系统:http://edu.51cto.com/course/10007.html PC1:192.168.1.201 远程地址:192.168.100.100:2001 windows service2008 pc1 Admin111FTP虚拟用户 fileaa fileaaPC2

python中FTP上传和下载

写这篇文章方便以后遇到需要定期去上传或下载时直接可以此简单模板. 1.python中FTP上传 #/usr/bin/python  # -*- coding: utf-8 -*-  import datetime import time import sys import os import ftplib def Upload_File():     ftp = ftplib.FTP()     TODAY=time.strftime('%Y-%m-%d')     FTPIP= "10.10.

asp.net 中 UEditor 图片上传失败的处理方法

1.0 找到 net 文件夹下面的 web.config 配置文件,注释掉如下的两句: 2.0 Uploader文件默认属性为编译,将其属性改为内容以后重新运行程序,图片上传成功. 3.0 删除 imageUp.ashx 中的 <%@ Assembly Src="Uploader.cs" %> asp.net 中 UEditor 图片上传失败的处理方法

关于优酷视频上传失败或暂停之后一直处于上传中或者处理中删除不掉的解决方法

我试了优酷上传的这一块做的很不好,不论是网页还是客户端都有问题,有时候经常出现优酷视频上传失败或暂停之后一直处于上传中或者处理中删除不掉的情况,因为那个视频前面的复选框是disabled的.解决方法就是在网页中右击,然后点击查看元素(我用的是火狐浏览器不同的浏览器有可能是不一样的,有的显示的是"审查元素")之后就把相应的灰色复选框的那个disabled改成abled,然后就可以直接删除了,删除之后刷新就可以看见成功了. (这个想法也来自于之前我同学陈鹏上传不了教务管理系统照片的情况)

Java中向ftp上传、下载文件

最近的一个项目跟ftp打交道很多,经常需要向ftp上传.下载文件,现在总结一下公共方法. 上传 /** * 文件上传 * * @param ip * host * @param port * 端口 * @param userName * 用户名 * @param passWord * 密码 * @param localpath * 上传文件在本地磁盘路径 * @param fileName * 文件名 * @param remotePath * 文件要上传到ftp服务器的路径 * @throws