zoukankan      html  css  js  c++  java
  • (转)Centos搭建FTP服务器

    场景:ftp服务器对于在Linux服务器上进行文件操作太方便,在安装软件时候,大的软件也可以先上传再进行安装!

    1 搭建FTP服务器

    1.1 检查vsftpd

    查看是否已经安装vsftpd

    rpm -qa | grep vsftpd

    卸载vsftpd:

    rpm -e vsftpd

    即可卸载ftp。

    查看vsftpd运行状态:

    ps -ef | grep vsftpd

     1.2 安装VSFTPD

    在CentOS下,搭建FTP服务器是使用vsftpd软件。

    键入以下命令以安装VSFTPD

    yum install vsftpd

    依旧会在检查依赖项目后要求用户确认,按y并回车即可。当提示“完成!”后即代表VSFTPD安装完毕。

    然后我们需要将vsftpd启动并设置成开机自启动:

    //启动vsftpd
    systemctl start vsftpd.service
    
    //设置vsftpd开机自启动
    systemctl enable vsftpd.service

      查看vsftpd是否开机启动可以使用如下命令:

    systemctl is-enabled vsftpd.service

    1.3 配置vsftpd.conf

    先备份配置文件

    cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd_vba.conf

    完成上面的步骤后,其实已经启动了ftp服务器,但我们并用不了,因为我们还没有对vsftpd进行一些必要的设置。

    vsftpd的配置文件是/etc/vsftpd/vsftpd.conf,直接用vim打开编辑即可。

    使用vim编辑器打开vsftpd配置文件:

    vim /etc/vsftpd/vsftpd.conf

    vsftpd的配置文件非常大,所以我就不截图展示和完整展示了,我们直接挑关键的地方进行一些简单的修改。

    注:在vim中,非编辑状态下输入“/”+需要查找的内容 后按回车键可以快键查找指定字符串。

    这个地方的修改,可以参考第3小节的控制

    anonymous_enable=YES
    
    是否允许匿名用户登陆FTP。
    
    为了安全起见关闭这个功能(将等号后的YES改成NO即可)。
    
     
    dirmessage_enable=YES
    
    切换目录时,显示目录下.message文件中的内容
    
    默认是开启的
    
     
    local_umask=022
    
    FTP上本地的文件权限,默认是077,不过vsftpd安装后的配置文件里默认是022.
    
    没有什么特殊情况不用修改。
    
     
    xferlog_enable=YES
    
    启用上传和下载的日志功能,默认开启。
    
    建议开启此功能,它可以对用户的操作进行日志记录,当出现问题的时候可以通过日志排查问题。
    
    
    ftpd_banner=XXXX
    
    FTP的欢迎信息。
    
    在FTP登陆成功之后,服务器会往客户端发送一个欢迎消息以表示登陆成功。这是一个个性化的功能,您可以自由的设置其值,也可以在配置最前加上#注释本行。
    
    
    data_connection_timeout=120
    
    数据连接超时时间。
    
    如果在使用vsftpd上传下载碎小文件的时候容易发生超时中断的问题,可以将本行前的#注释符去掉,然后将120改成5或者更小,然后重启vsftpd即可。
    

    修改配置文件完成,保存后重启VSFTPD。

    重启vsftpd服务:

    //重启vsftpd服务
    systemctl restart vsftpd.service

    2 Linux添加FTP用户并设置权限

    2.1 创建FTp用户

    添加一个名为ftpuser的用户,用户文件夹位置为:/var/www/html,且禁止此用户登陆服务器

    useradd -d /var/www/html -s /sbin/nologin ftpuser

    ps:

    • 在指定用户文件夹/var/www/html时候,最好先创建目录,否则会出现2.2中的问题。
    • /sbin/nologin只是不允许系统login,可以使用其他ftp等服务

    然后设置一下密码,为ftpuser设置密码:

    //设置密码
    passwd ftpuser

    这时候系统会要求您输入新的密码并且重复一遍。顺便一提在SSH中,密码一般不会回显,所以初学者可能会觉得输进去没反应,其实是已经输进去了。

     

    2.2 防火墙开放端口

    经过创建用户之后,有小部分的同学可能已经可以登陆了。但是绝大部分的同学会连接ftp失败,提示连接失败 (连接已超时)

    失败的原因很简单,就是iptables防火墙将我们的连接请求阻断了。如果你个人怕麻烦,而且也觉得防火墙没什么用,那你可以将iptables防火墙关闭,关闭防火墙之后就可以正常使用了。

    不过因为这么一点小事儿就关闭防火墙未免显得有点水,而且防火墙摆在那里总归是有用的。那么有什么办法既保留防火墙,又能让iptables不把我们的ftp连接请求阻断呢?

    当然有,我们需要调整一下iptables的配置文件,使ftp协议的端口可以通过防火墙。

    配置防火墙请参考2.3中的主动模式。

    2.3 FTP两种模式

    FTP有两种模式,主动模式和被动模式。由于两种模式使用的端口不一样,所以调整的内容也不一样。

    虽然知道FTP存在两种模式:PORT(主动)模式、PASV(被动)模式,但是却不知道vsftpd此时竟然“不支持”被动模式!不会的,一定是配置出了问题~经过一番搜索,发现了其中的端倪:

    FTP两种模式的区别:

    (1)PORT(主动)模式

    所谓主动模式,指的是FTP服务器“主动”去连接客户端的数据端口来传输数据,其过程具体来说就是:客户端从一个任意的非特权端口N(N>1024)连接到FTP服务器的命令端口(即tcp 21端口),紧接着客户端开始监听端口N+1,并发送FTP命令“port N+1”到FTP服务器。然后服务器会从它自己的数据端口(20)“主动”连接到客户端指定的数据端口(N+1),这样客户端就可以和ftp服务器建立数据传输通道了。

    (2)PASV(被动)模式

    所谓被动模式,指的是FTP服务器“被动”等待客户端来连接自己的数据端口,其过程具体是:当开启一个FTP连接时,客户端打开两个任意的非特权本地端口(N >1024和N+1)。第一个端口连接服务器的21端口,但与主动方式的FTP不同,客户端不会提交PORT命令并允许服务器来回连它的数据端口,而是提交PASV命令。这样做的结果是服务器会开启一个任意的非特权端口(P > 1024),并发送PORT P命令给客户端。然后客户端发起从本地端口N+1到服务器的端口P的连接用来传送数据。(注意此模式下的FTP服务器不需要开启tcp 20端口了)

    两种模式的比较:

    (1)PORT(主动)模式模式只要开启服务器的21和20端口,而PASV(被动)模式需要开启服务器大于1024所有tcp端口和21端口。

    (2)从网络安全的角度来看的话似乎ftp PORT模式更安全,而ftp PASV更不安全,那么为什么RFC要在ftp PORT基础再制定一个ftp PASV模式呢?其实RFC制定ftp PASV模式的主要目的是为了数据传输安全角度出发的,因为ftp port使用固定20端口进行传输数据,那么作为黑客很容使用sniffer等探嗅器抓取ftp数据,这样一来通过ftp PORT模式传输数据很容易被黑客窃取,因此使用PASV方式来架设ftp server是最安全绝佳方案

    因此:如果只是简单的为了文件共享,完全可以禁用PASV模式,解除开放大量端口的威胁,同时也为防火墙的设置带来便利。

    不幸的是,FTP工具或者浏览器默认使用的都是PASV模式连接FTP服务器,因此,必须要使vsftpd在开启了防火墙的情况下,也能够支持PASV模式进行数据访问。

    vsftpd两种模式设置:

    FTP主动模式

    使用Vim编辑器打开iptables配置文件:

    vim /etc/sysconfig/iptables

    然后在配置文件中加入这么一句:

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT

    这句话告诉iptables开放21端口,允许接受从21端口传入的连接。

    然后重启iptables服务:

    systemctl restart iptables.service

    现在就可以使用ftp工具登陆我们的ftp服务器了!

    FTP被动模式

    如果ftp处于被动模式下,除了需要修改iptables的配置文件以外,还需要修改vsftpd的配置文件。

    1、首先是修改vsftpd的配置文件:

    使用Vim编辑器打开vsftpd配置文件:

    vim /etc/vsftpd/vsftpd.conf

    现在配置文件中找到“connect_from_port_20=YES”并将它修改为“connect_from_port_20=NO”,关闭掉vsftpd的主动模式。

    2、然后在配置文件的末尾追加:

    #使vsftpd运行在被动模式
    pasv_enable=YES
    
    #被动模式最小端口号30000
    pasv_min_port=30000
    
    #被动模式最大端口号31000
    pasv_max_port=31000

    保存配置文件并退出。

    3、重启vsftpd服务:

    systemctl restart vsftpd.service

    4、再使用Vim编辑器打开iptables配置文件:

    vim /etc/sysconfig/iptables

    添加这两句话:(“#”开头的是注释,可以不添加)

    #开放ftp协议21端口,允许接受来自21端口的新建TCP连接

    -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

    #开放30000-31000号端口,允许接受来自此端口号段的新建TCP连接

    -A INPUT -p tcp --dport 30000:31000 -j ACCEPT

    保存并退出,然后重启iptables服务:

    systemctl restart iptables.service

    现在就可以使用ftp工具登陆我们的ftp服务器了!

     2.4 调整文件夹权限

    可能现在又有个问题冒出来了,使用ftp工具登陆服务器之后,不管创建什么,都会失败。

    这个问题主要是在服务器的文件夹权限设置上。以笔者为例,笔者将ftp服务器登陆后的默认文件夹设置为/var/www/html,登陆ftp之后上传什么文件都显示553 Could not create file.

    进入/var/www文件夹

    查看一下目录权限

    ls –l

    我们可以看到html文件夹的权限是drwxr-xr-x。

    我们将这个权限字符串分为四个部分,以顿号隔开:d、rwx、r-x、r-x。

    这四部分分别说明了:

    1.此文件其实是个文件夹;

    2.此文件的文件主拥有读、写、执行权限;

    3.此文件的组用户拥有读、执行权限;

    4.此文件的其他用户拥有读、执行权限。

    果然是权限不够!

    调整一下权限,让所有人都拥有读、写、执行的权力

    chmod 777 html

    再看一下现在的文件夹权限

    ls –l

    可以了,返回ftp工具,上传文件,一切正常!

     #####经过上面的配置,已经可以使用ftp服务器,下面是对ftp进行更加详细的控制,使用起来更加得心应手

    2.5添加用户及指定用户默认目录

    使用useradd创建新用户,并指定用户的家目录时候出现如下问题:

     在创建ftp用户时候,之所以出现上面的错误,是因为home下面没有fdp目录,添加用户时候只能创建一层目录,多层就会报错

     此时home目录中不存在我们指定的目录——

    但是用户信息中的用户是存在的——

    cat /etc/passwd

    此时用fdp03进行登录出现如下错误——

     解决办法:通过mkdir命令建立相关用户的目录即可!

    2.6 在linux中添加ftp用户,并设置相应的权限

    操作步骤如下:
     
    1、环境:ftp为vsftp。被限制用户名为test。被限制路径为/home/test
    2、建用户:在root用户下:
    useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
    passwd test //为test设置密码
    #-a表示复制隐藏文件,防止shell格式不全问题
    cp -a /etc/skel/.  /home/test 
    3、更改用户相应的权限设置:
    usermod -s /sbin/nologin test //只是不允许系统login,可以使用其他ftp等服务
    usermod -s /bin/bash test //用户test恢复正常,既可以登录shell,也可以登录ftp
    usermod -d /test test
    //更改用户test的主目录为/test

    2.7 查看新建用户信息

    cat /etc/passwd

    2.8 解决vsftpd 读取目录列表失败的问题 

    搭建ftp服务器后必须进行设置的!

    Linux中搭建Ftp服务器,并使用FileZilla软件登录时候出现如下错误:

    该错误是由iptables的配置引起的,临时的解决方法是执行如下命令:

    [root@localhost soft]# modprobe ip_nat_ftp

    再次登陆列表正常啦!

    一劳永逸的解决办法:
    但当你重新启动服务器则iptables规则失效,又会出现相同的情况,所以我们需要修改/etc/sysconfig/iptables-config文件,

    [root@localhost soft]# vi /etc/sysconfig/iptables-config
    
    # Load additional iptables modules (nat helpers)
    #   Default: -none-
    # Space separated list of nat helpers (e.g. 'ip_nat_ftp ip_nat_irc'), which
    # are loaded after the firewall rules are applied. Options for the helpers are
    # stored in /etc/modprobe.conf.
    IPTABLES_MODULES=""
    
    # Unload modules on restart and stop
    #   Value: yes|no,  default: yes
    # This option has to be 'yes' to get to a sane state for a firewall
    # restart or stop. Only set to 'no' if there are problems unloading netfilter
    # modules.
    IPTABLES_MODULES_UNLOAD="yes"
    
    ......

    IPTABLES_MODULES_UNLOAD="yes"的意义:每次iptables停止或者重启都会Unload modules
    IPTABLES_MODULES=""的意义:每次防火墙规则应用以后加载的模块

    我们需要把
    IPTABLES_MODULES=""
    修改为:

    IPTABLES_MODULES="ip_nat_ftp"
    #重启防火墙
    service   iptables restart 

    这样重启服务器之后就不必再每次都执行mobprobe啦。

    3 vsftpd 配置:chroot_local_user与chroot_list_enable详解(重要)

    3.1 配置用户访问目录

    vim /etc/vsftpd/vsftpd.conf

    搭建ftp服务器,我喜欢配置用户访问目录,并选择方式一

    很多情况下,我们希望限制ftp用户只能在其主目录下(root dir)下活动,不允许他们跳出主目录之外浏览服务器上的其他目录

    这时候我就需要使用到chroot_local_user,chroot_list_enable,chroot_list_file这三个选项了。

    以下是对三个配置项的解释: 本文原文出处:http://blog.csdn.net/bluishglc/article/details/42398811 !

    • chroot_local_user #是否将所有用户限制在主目录,YES为启用 NO禁用.(该项默认值是NO,即在安装vsftpd后不做配置的话,ftp用户是可以向上切换到要目录之外的)

    • chroot_list_enable #是否启动限制用户的名单 YES为启用  NO禁用(包括注释掉也为禁用)

    • chroot_list_file=/etc/vsftpd/chroot_list #是否限制在主目录下的用户名单,至于是限制名单还是排除名单,这取决于chroot_local_user的值,我们可以这样记忆: chroot_local_user总是一个全局性的设定,其为YES时,全部用户被锁定于主目录,其为NO时,全部用户不被锁定于主目录。那么我们势必需要在全局设定下能做出一些“微调”,即,我们总是需要一种“例外机制",所以当chroot_list_enable=YES时,表示我们“需要例外”。而”例外“的含义总是有一个上下文的,即,当”全部用户被锁定于主目录“时(即chroot_local_user=YES),"例外"就是:不被锁定的用户是哪些;当"全部用户不被锁定于主目录"时(即chroot_local_user=NO),"例外"“就是:要被锁定的用户是哪些。这样解释和记忆两者之间的关系就很清晰了!

     对于chroot_local_user与chroot_list_enable的组合效果,可以参考下表:

      chroot_local_user=YES chroot_local_user=NO
    chroot_list_enable=YES 1.所有用户都被限制在其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,不受限制 1.所有用户都不被限制其主目录下 2.使用chroot_list_file指定的用户列表,这些用户作为“例外”,受到限制
    chroot_list_enable=NO 1.所有用户都被限制在其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户 1.所有用户都不被限制其主目录下 2.不使用chroot_list_file指定的用户列表,没有任何“例外”用户


    让我们举个例子:

    假设有ftp1, ftp2两个ftp用户, 计划让ftp1用户锁定在主目录下,不允许切换到其他目录, 但是允许ftp2用户自由切换目录,则可以分如下两种方式实现

    方式一:
    令:
    chroot_local_user=YES
    chroot_list_enable=YES

    通过如下方式解除用户的目录限制:(即是不进行解除,也要创建下面的文件,不然会报错)

    vim /etc/vsftpd/chroot_list

    /etc/vsftpd/chroot_list名单列表为:
    ftp2
     ps:在开启chroot_local_user=YES和chroot_list_enable=YES后需要建立/etc/vsftpd/chroot_list文件,不然会报500错误

    解释:chroot_local_user=YES将所有用户限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file,

    因为chroot_local_user=YES,即全体用户都被“限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“不会被限制在主目录下”的用户。
     
    方式二:
    令:
    chroot_local_user=NO
    chroot_list_enable=YES
    /etc/vsftpd/chroot_list名单列表为:
    ftp1

    解释:chroot_local_user=NO则所有用户不被限定在主目录内,chroot_list_enable=YES表示要启用chroot_list_file,

    因为chroot_local_user=NO,即全体用户都“不被限定在主目录内”,所以总是作为“例外列表”的chroot_list_file这时列出的是那些“会被限制在主目录下”的用户。

    其他情况:

    对于chroot_local_user和chroot_list_enable的组合还有这样两种情况:


    chroot_local_user=YES
    chroot_list_enable=NO

    chroot_local_user=NO
    chroot_list_enable=NO


    当chroot_list_enable=NO时,就不再启用chroot_list_file,此时就是单纯的把全部用户限定或不限定在主目录下了!

    补充:

    • 关于chroot_local_user的设置,通常我们倾向于:全局禁止跳出主目录,使用chroot_list添加例外!即:使用Case 1的设置!
    • 匿名用户默认的root是/var/ftp

    3.2 500 OOPS

    搭建ftp服务器,必须要进行的步骤

    1、vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

    当我们限定了用户不能跳出其主目录之后,使用该用户登录FTP时往往会遇到这个错误:

    这个问题发生在最新的版本中,这是由于下面的更新造成的:

    - Add stronger checks for the configuration error of running with a writeable root directory inside a chroot(). This may bite pe

    从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

     要修复这个错误,有两个方法:

    方法一——可以用命令

    chmod a-w /home/user

     去除用户主目录的写权限,注意把目录替换成你自己的。

    方法二——你可以在vsftpd的配置文件中增加下列两项中的一项:(通常采用的方式)

    vim /etc/vsftpd/vsftpd.conf
    //增加下面的配置内容
    allow_writeable_chroot=YES

    2、500 OOPS: chroot

    解决办法,参考http://www.cnblogs.com/lixuwu/p/6087023.html 关闭SELINUX 

    3、227 Entering Passive Mode

    在安装完centos虚拟机后,连接vsftp服务器出现这样的错误

    响应:    200 Switching to Binary mode.
    命令:    PASV
    响应:    227 Entering Passive Mode (192,168,71,130,201,0).
    命令:    LIST
    错误:    20 秒后无活动,连接超时
    错误:    读取目录列表失败

    经查询得知,要将vsftp设置为主动连接模式。

    vim /etc/vsftpd/vsftpd.conf
    
    #添加如下配置
    pasv_enable=NO
    
    #保存后退出,重启vsftp服务器
    systemctl restart vsftpd.service

     4 、550 Permission denied

    登录ftp出现如下错误

    响应:    200 Switching to Binary mode.
    命令:    PASV
    响应:    550 Permission denied.
    命令:    PORT 192,168,71,1,248,176
    响应:    200 PORT command successful. Consider using PASV.
    命令:    LIST
    响应:    425 Failed to establish connection.
    错误:    读取目录列表失败

    问题分析:

    查看ftp服务器账户,有写入权限,支持上传,服务器提示无法启动传输,说明连接无法建立

    问题处理:

    点击FileZilla文件,选择站点管理器——选择站点——常规——协议——SFTP-SHH

    主机名,端口不填,协议使用SFTP-SHH,登录类型选择正常,输入用户和密码,点击链接,连接后选择上传文件,上传成功,配置如下:

    4 ftpusers和user_list以及userlist_enable和userlist_deny(重要)

    vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释

    本文原文出处: http://blog.csdn.net/bluishglc/article/details/42273197

    /etc/vsftpd/vsftpd.conf #主配置文件
    
    /etc/vsftpd/ftpusers #不能访问FTP用户列表
    
    /etc/vsftpd/user_list #不能访问FTP用户列表

    问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系?

    首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单

    该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。

    //不能访问FTP用户列表
    vim /etc/vsftpd/ftpusers 

    user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。

    所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置

    使用root用户登陆,出现如下问题:

    分两步解决:

    1.将总开关中的root用户注释掉

    vim /etc/vsftpd/ftpusers

    注释掉root用户

    2.查看主配置文件,确认是否启用userlist_enable配置,一般是YES

    vim /etc/vsftpd/vsftpd.conf

    所以:

    vim /etc/vsftpd/user_list 

     再次注释掉root用户

     

    不需要重启,直接成功:



    问题二:vsftpd.conf中的userlist_enable和userlist_deny两个配置项各自起什么作用,两者如何搭配使用?

    userlist_enable=YES(默认有这个)
    userlist_deny (默认没这个,这一项即使不设置也为YES,vsftpd已经默认了)

    为了说明这个问题,我们来建立两个测试用户:

    tom: 在user_list中
    jim:不在user_list中


    然后我们分别给两个配置项取不同的值,分4种Case进行测试:

    Case 1: userlist_enable=YES, userlist_deny=YES

    tom: 拒绝登入
    jim: 允许登录

    Case 2: userlist_enable=YES, userlist_deny=NO

    tom: 允许登录
    jim:拒绝登录(如user_list文件开头的注释所述,甚至不会提示输入密码,即无登入提示框,直接拒绝连接)

    Case 3: userlist_enable=NO,userlist_deny=NO

    tom: 允许登录
    jim: 允许登录

    Case 4: userlist_enable=NO,userlist_deny=YES

    tom: 允许登录
    jim: 允许登录

    综上实验得出以下结论:

      1. userlist_enable和userlist_deny两个选项联合起来针对的是:本地全体用户(除去ftpusers中的用户)和出现在user_list文件中的用户以及不在在user_list文件中的用户这三类用户集合进行的设置。
      2. 当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
      3. 当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
      4. 当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous

    另一篇博客的实验结果

    上表为测试结果,从表中可以看出,当userlist_enable为NO时,userlist_deny为YES或NO都登录成功了。

    这里推测,userlist_enable的功能是关闭和启用userlist机制,而user_deny用于是否阻止user_list文件中的用户登录,这么说有点绕。

    换种说法就是,只要userlist_enable开启了,就可能有用户被禁止登录,如果开启userlist_deny,那么禁用的是user_list文件中指定的用户,否则user_list文件外的用户被禁用。

    实际遇到的问题

    现象:使用tws用户登录,ftp无法上传文件,上传文件都是0字节,或者本地更改上传到服务器都是0字节
    原因是当前用户的磁盘空间被日志占满了。
    df -h 查看用户空间使用情况
    du -sh * 查看当前目录下各个文件的大小

     使用上述命令,查找大日志目录,删除即可

     
  • 相关阅读:
    网站备案 应该找域名商还是空间商备案
    备案的问题
    js发送邮件确定email地址
    How to Create a First Shell Script
    虚拟主机和网站空间有什么区别?
    linux 单引号,双引号,反引号
    linux 中的单引号 和双引号有什么区别吗
    linux awk命令详解
    shell中$0,$?,$!等的特殊用法
    深圳测试协会第二次管理层会议成功召开!
  • 原文地址:https://www.cnblogs.com/lixuwu/p/6089761.html
Copyright © 2011-2022 走看看