最近开始用wordpress搭建自己的个人博客,在自动更新wordpress的时候要用到FTP服务,在Ubuntu的云主机上配置FTP花费了不少时间,在这里作一下总结。

搭建FTP肯定是要用大名鼎鼎的vsftpd。具体步骤如下:

  1. 安装vsftpd

    apt-get install vsftpd
  2. 配置vsftpd参数
    配置文件是/etc/vsftpd.conf,首先先备份原配置文件。

    cp /etc/vsftpd.conf /etc/vsftpd.conf.old

    然后修改其中的参数,如下:

    # Example config file /etc/vsftpd.conf
    listen=YES<br>anonymous_enable=NO #禁止匿名登录
    local_enable=YES #本地用户可以登录
    write_enable=YES #允许写操作,包括上传,修改等
    # Activate directory messages - messages given to remote users when they
    # go into a certain directory.
    dirmessage_enable=YES #显示目录信息
    use_localtime=YES #使用本地时间
    xferlog_enable=YES #开启日志
    xferlog_file=/var/log/vsftpd.log #日志存储位置
    xferlog_std_format=YES #日志标准格式
    chroot_local_user=YES #将用户限制在他们的home目录
    chroot_list_enable=YES #启用可以chroot的用户的列表
    chroot_list_file=/etc/vsftpd.chroot_list #指定可以chroot的用户列表的位置
    ls_recurse_enable=YES #允许递归操作
    secure_chroot_dir=/var/run/vsftpd/empty #必须为空

    关于chroot_local_user,chroot_list_enable,chroot_list_flie三个参数,有如下解释。

    # You may restrict local users to their home directories.  See the FAQ for
    # the possible risks in this before using chroot_local_user or
    # chroot_list_enable below.
    #
    # You may specify an explicit list of local users to chroot() to their home
    # directory. If chroot_local_user is YES, then this list becomes a list of
    # users to NOT chroot().
    # (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
    # the user does not have write access to the top level directory within the
    # chroot)

    也就是说,如果chroot_local_user选项为NO,则本地账户可以访问除home目录以外的其他目录,此时chroot_list_file是不可以chroot()的用户;当chroot_local_userYES时,本地账户只能访问自家目录,此时chroot_list_file变成可以chroot()的用户列表。

  3. 完成上面这些之后,编辑/etc/shells文件,如果没有/sbin/nologin,要添加这一行。

    /sbin/nologin
  4. 添加用户

    useradd -g ftp -d /home/username -m username
    #-g选项指明用户所在的组
    #-d选项指明用户的家目录
    #-m指明用户名
    passwd username #给用户设置密码
  5. 如果只执行完上述步骤,在wordpress中使用ftp更新时仍然会遇到无法创建目录的错误,原因是新建的用户并没有wordpress所在目录的修改权限,所以要修改用户的权限。(我这里wordpress所在的目录是/var/www/html/wordpress

    chmod -R 755 /var/www/html/wordpress
    chown -R username:ftp /www/html/wordpress
  6. 重启vsftpd服务

    service vsftpd restart

    然后就可以使用ftp进行wordpress的更新了,也可以安装新的翻译,主题,插件。

参考资料

vsftpd安装
FTP用户目录权限配置

载入中...
cppowboy cppowboy

17 声望

发布于专栏

Cppowboy's Blog

This is cppowboy's blog.

0 人关注