美文网首页
Ubuntu下搭建ftp服务器

Ubuntu下搭建ftp服务器

作者: MiracleJQ | 来源:发表于2019-03-29 19:13 被阅读0次

    前言:
      最近项目需要搭建第三方文件服务器,本来使用的是apache服务器将需要的子项目的目录发布出来,然后通过软连接将所有子项目关联起来,但是如果不同时将所有子项目跑起来的话,未开启的项目目录就会丢失,着实蛋疼,所以才有搭建ftp服务器的想法,下面开始正文。

    一、安装

    如果是ubuntu环境下的话,安装是很简单的,只需输入如下命令:

    安装

    sudo apt-get install vsftpd

    安装完成后可以察看下服务状态(其实安装完成了就会提示已经在跑了)

    sudo service vsftpd status

    二、配置文件

    其实我用到的文件只有三个

    +  1. /etc/vsftp.conf(主配置文件)

    +  2. /etc/vsftp.chroot_list(可访问用户列表,这个在我这里貌似不是已有的,我是手建的,这个察看上面那个配置文件就会发现,配置文件里面有关联)

    +  3. /etc/pam.d/vsftpd(里面有个选项需要修改,这个需要简单配置一下,否则会出现“530 login incorrect”的错误)

    下面开始逐个文件说明:

    +  1./etc/vsftpd.config 里面的注释比较多,还很详细,这里就不一一列举了,只写上我修改的

        anonymous_enable=NO(是否允许匿名登陆)
    
        local_enable=YES(是否允许本地登陆)
    
        write_enable=YES(设置FTP可写)
    
        //chroot (Change Root)
    
        chroot_local_user=YES(设置成YES后,加入vsftpd.chroot_list中的用户可以通过ftp访问)
    
        chroot_list_enable=YES(启用下面这个vsftpd.chroot_list)
    
        chroot_list_file=/etc/vsftpd.chroot_list(指定一下list,这是文件默认的,但是并不存在,需要手动弄一下)
    
        pam_service_name=vsftpd(这里留个标记,在一定情况下会出现530的问题,留到后面错误去讲)
    

    +  2./etc/vsftpd.chroot_list

    这个文件比较简单,之需要将允许ftp登陆的用户名放进来就行,一个一行,我之前一直比较愤怒,网上在这里就这么说一下,都没个例子,这叫劳资怎么填,其实很简单,比如像这样:

    user
    user2
    user22
    

    由于说到了添加用户,其实是这样的,你可以使用本地已经存在的用户,但是作为一个淡定的ftp服务器,是不应该把本机的东西都共享给外面的,最好的方法就是再创建个用户专门给ftp使用

    所以这里来搞一下用户的问题

    添加(-d是指定的用户主目录,-m接要创建的用户名),

    sudo useradd -d /home/user -m username

    创建完了用户还需要个用户密码,

    sudo passwd username

    Whatever,要是想删了,

    sudo userdel username

    这里还要留个标记,关于创建用户之后,一些情况下可能会出现个500的错误,留到后面错误去讲

    好了,现在察看下创建结果,发着光的那条

    user@userServer:/home$ ll
    总用量 xx
    drwxr-xr-x  7 root   root    4096  4月 24 11:27 ./
    drwxr-xr-x 25 root   root    4096  4月  9 09:47 ../
    drwxr-xr-x  2 heihei    heihei     4096  4月 24 11:27 heihei/
    drwxr-xr-x  6 haha    haha     4096  2月 15 18:08 haha/
    drwxr-xr-x 75 username    username    4096  4月 24 13:18 username/
    

    + 3./etc/pam.d/vsftpd

    这个文件如下:

    auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

    不要在意那个deny,他不应该是allow,他不是不让你使用,淡定..

    三、登陆

    其实有好多方法登陆的

    1.命令行

    ip地址用你的..

    那个username应该是当前的用户,不要管他,除非和ftp用户是一个;

    user就是你的ftp用户,先前创建的那个,要是和当前用户是一个的话直接回车过去;

    passwd输入;

    搞定

    user@userServer:/home$ ftp 192.168.1.123
    Connected to 192.168.1.123.
    (vsFTPd 2.3.5)
    Name (192.168.1.123:username): user
    Please specify the password.
    Password:
    Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp>
    

    2.浏览器

    在地址栏输入(your ip address):  ftp://192.168.1.123

    3.在windows的目录地址上面敲入上面的地址

    四、错误

    终于到了这里,事情从不会那么容易就让你直接完成,就那么几个问题,可能不经意见就中了套..

    1. 530 login Incorrect

    话说这个问题貌似几个情况都会出现:

    • 1)pam_service_name=vsftpd 就是前面vsftpd.conf文件里面那厮,我在第一台PC上面搭建的时候文件里面没有,据说是因为这句话,由于第一台PC上面问题较多,我也不确定是不是这个问题

    • 2)还记得/etc/pam.d/vsftpd那个文件不,说了不要动deny,是不是手贱

    • 3)还没发现,这是为了可扩展性,:-)

    2. 500 OOPS: cannot change directory:/home/**

    • (1)网上说法比较统一,一般是说设置一堆参数就好了,可以查一下

    • (2)我说说我的错误原因哈,MD其实就是ftp用户创建的时候我把文件夹权限限定了,如果你的用户没有各种权限也会出这种问题,这个时候你只需要:

    sudo chmod 755 userDir/

    相关文章

      网友评论

          本文标题:Ubuntu下搭建ftp服务器

          本文链接:https://www.haomeiwen.com/subject/erprbqtx.html