这是一台squid代理服务器(一台式机,安装的是redhat 5.4 64位操作系统),每天下午4点一台服务器通过ftp上传主机数据库巡检报告到这台代理PC机的一个用户家目录下的xunjian目录下,这台PC再通过发送邮件的方式将巡检报告发给组内成员,进行巡检
此为背景,之前的selinux设置的为Permissive,不料同事中午睡觉的时候,脚这么一碰,将这台代理PC重启了,重启后,连续2天的巡检报告都没有通过邮件收到,赶紧解决吧
1、手动的执行ftp上传动作,报如下错误:553 Could not create file.
sshuser@station90.example.com:~/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打开,如下所示:
[root@squid ~]# getenforce
Enforcing
[root@squid ~]# getsebool -a | grep ftp_home_dir
ftp_home_dir --> off
[root@squid ~]# setsebool ftp_home_dir on
3、这时候去上传,就可以成功了,如下所示
sshuser@station90.example.com:~/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
[root@squid ~]# getenforce
Enforcing
[root@squid ~]# setenforce 0
[root@squid ~]# getenforce
Permissive
5、同时在/etc/rc.local中添加这么一行,那么下次系统重启后,就不会发生这样的情况了
[root@squid ~]# which setenforce
/usr/sbin/setenforce
[root@squid ~]# cat /etc/rc.local | tail -n 1
/usr/sbin/setenforce 0
好啦,这样就顺利解决问题了,希望对一些朋友有所帮助
selinux导致ftp上传失败 工作中的真实案例
2019-12-11 16:17Linux教程网 Linux
这是一台squid代理服务器(一台式机,安装的是redhat 5.4 64位操作系统),每天下午4点一台服务器通过ftp上传主机数据库巡检报告到这台代理PC机的一个用户家目录下的xunjian目录下,这台PC再通过发送邮件的方式将巡检报告发给组内成员
延伸 · 阅读
- 2022-03-08CentOS 6.5平台实现快速部署FTP的方法
- 2022-03-08CentOS 6.5 环境实现本地局域网搭建YUM的方法【基于
- 2022-03-07android传送照片到FTP服务器的实现代码
- 2022-03-04SpringBoot项目集成FTP的方法步骤
- 2022-03-02linux中ftp服务器搭建需要注意的地方
- 2022-02-22C#基于FTP协议的简易软件自动升级程序
- Linux
四款值得一试的 Linux 终端多路复用器
Linux 用户通常需要大量的虚拟视觉空间。一个终端窗口是永远不够的,所以终端有了标签。一个桌面太受限制了,所以有了虚拟桌面。...
- Linux
容器的四大基础技术
在本文中,我研究了容器是如何在一些特殊的 Linux 技术基础上实现的,这其中包括命名空间和控制组。...
- Linux
详解linux lcd驱动编写
这篇文章主要介绍了详解linux lcd驱动编写,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...
- Linux
详解Linux patch命令参数及用法
本篇文章文章主要介绍了linux patch命令,此命令用于为特定软件包打补丁,他使用diff命令对源文件进行操作。有兴趣的可以了解一下。...
- Linux
Linux安装使用分布式版本控制系统GitHub的步骤
Git是一个分布式版本控制系统,为用户提供Git服务,下面小编就给大家介绍下Linux如何安装和使用GitHub,感兴趣的朋友可以看看 ...
- Linux
Linux中rz命令使用实例分享(批量上传文件、简单易用)
rz命令可以批量上传文件,当然也可上传单个文件啦。使用的协议是古老的ZMODEM协议,虽然协议古老,但毫不影响的简单易用的特性 ...
- Linux
Linux下Wireshark的网络抓包使用方法
这篇文章主要介绍了Linux下Wireshark的网络抓包使用方法,针对其的tshark命令给简单讲解,需要的朋友可以参考下...
- Linux
linux系统中的批量删除文件与空文件删除的命令介绍
本章为大家详细的整理了,在linux系统中批量删除文件和空文件删除的命令,请大家“对症下药” ...