• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    selinux导致ftp上传失败 工作中的真实案例
    这是一台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

    好啦,这样就顺利解决问题了,希望对一些朋友有所帮助
    上一篇:linux下scp远程拷贝包含空格的目录或者文件的解决方法
    下一篇:Linux日常维护常用命令集合整理
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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