zoukankan      html  css  js  c++  java
  • linux(centos6)搭建ftp服务器

    前提

    ssh服务已经开启,关闭防火墙,主机和虚拟机能ping通

    查看ssh和防火墙的状态

    service sshd status

    service iptables status

    开启ssh服务

    service sshd start

    关闭防火墙

    chkconfig iptables off

    测试主机和虚拟机的连通性

    ping 192.168.2.129

    安装并开启tftp和vsftpd

    [root@localhost ~]# yum install tftp

    [root@localhost ~]# yum install vsftpd

    [root@localhost ~]# chkconfig vsftpd on

    [root@localhost ~]# chkconfig tftp on

    启动vsftpd 服务

    service vsftpd start

    查看vsftpd 的启动状态

    service vsftpd status 

    打开21和20端口

    [root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 21 -j ACCEPT

    [root@localhost ~]# /sbin/iptables -I INPUT -p tcp --dport 20 -j ACCEPT

    [root@localhost ~]# /etc/rc.d/init.d/iptables save

    添加ftp用户

    [root@localhost vsftpd]# useradd ftpuser

    [root@localhost vsftpd]# passwd ftpuser

    修改sftpd .conf配置文件

    [root@localhost vsftpd]#vi /etc/vsftpd/vsftpd.conf

    把第一行的 anonymous_enable=YES ,改为NO

    注:

    vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。 vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。    

    vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。    

    vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。如下

    [root@Mclass vsftpd]# cat ftpusers

    # Users that are not allowed to login via ftp

    root

    [root@Mclass vsftpd]#

    重启vstfpd 服务

    [root@localhost upload]# service vsftpd restart

    windows cmd测试链接

    C:UsersAdministrator>ftp 192.168.1.112

    连接到 192.168.1.112。

    220 (vsFTPd 2.2.2)

    用户(192.168.1.112:(none)): ftpuser

    331 Please specify the password.

    密码:

    500 OOPS: cannot change directory:/home/ftpuser

    登录失败。

    ftp> bye

    可以看到报了个错误:500 OOPS: cannot change directory:/home/ftpuser。原因是CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。查看如下:

    [root@localhost vsftpd]# getsebool -a | grep ftp

    allow_ftpd_anon_write --> off

    allow_ftpd_full_access --> off

    allow_ftpd_use_cifs --> off

    allow_ftpd_use_nfs --> off

    ftp_home_dir --> off

    ftpd_connect_db --> off

    httpd_enable_ftp_server --> off

    tftp_anon_write --> off

    [root@localhost vsftpd]#

    只要把allow_ftpd_full_access --> off,ftp_home_dir --> off改为on就可以了。  #我这里直接用setenforce 0

    [root@localhost vsftpd]# setsebool ftp_home_dir 1

    [root@localhost vsftpd]# setsebool allow_ftpd_full_access 1

    开启SELinux

    如执行getsebool -a | grep ftp出现getsebool: SELinux is disabled的错误,需重新开启selinux

    vi /etc/selinux/config

    更改为:SELINUX=enabled

    必须重启linux,不重启是没办法立刻开启selinux的

    重启完以后,就可以使用getsebool -a | grep ftp命令了

    再次查看

    [root@localhost vsftpd]# getsebool -a | grep ftp

    allow_ftpd_anon_write --> off

    allow_ftpd_full_access --> on

    allow_ftpd_use_cifs --> off

    allow_ftpd_use_nfs --> off

    ftp_home_dir --> on

    ftpd_connect_db --> off

    httpd_enable_ftp_server --> off

    tftp_anon_write --> off

    再次测试连接

    C:UsersAdministrator>ftp 192.168.1.112

    连接到 192.168.1.112。

    220 (vsFTPd 2.2.2)

    用户(192.168.1.112:(none)): ftpuser

    331 Please specify the password.

    密码:

    230 Login successful.

    ftp> ls

    200 PORT command successful. Consider using PASV.

    150 Here comes the directory listing.

    226 Directory send OK.

    ftp> bye

    221 Goodbye.

    Ok,配置成功,可以用flashxftp来进行上传文件了。

    Flashxftp上传文件

    首先在/home的目录中创建一个目录,然后设置权限为777   

    [root@localhost home]# mkdir upload

    [root@localhost upload]# chmod -R 777 /home/upload    然后修改vsftp的配置文件vsftpd.conf文件

    [root@localhost upload]# vi /etc/vsftpd/vsftpd.conf    在最后添加上     local_root=/home/upload     保存,然后重启vsftpd服务器程序。

    配置完成,就可以通过ftp上传文件到/home/upload目录下了。

    设置权限

    限制用户只能访问/home/test,不能访问其他路径

        修改/etc/vsftpd/vsftpd.conf如下:

    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd/chroot_list

        编辑上面的内容

        第一行:chroot_list_enable=YES  //限制访问自身目录

        第三行:编辑vsftpd.chroot_list。根据第三行说指定的目录,找到chroot_list文件。(因主机不同,文件名也许略有不同)

        编辑chroot_list,将不受限制的用户添加进去,每个用户名一行

    5、重启服务器

        改完配置文件,不要忘记重启vsFTPd服务器

        运行命令:/etc/init.d/vsftpd restart

    6、如果需要允许用户修改密码,但是又没有telnet登录系统的权限:

        运行命令:“usermod -s /usr/bin/passwd test”  //用户telnet后将直接进入改密界面

  • 相关阅读:
    MYbatis调试日记(三)
    Mybatis错误调试(二)
    【转载】MyBatis之传入参数
    Mybatis代码调试问题总结(一)
    【转载】Mybatis多参数查询映射
    未整理的资源
    Strace--系统调用分析问题集锦
    java初始化过程中成员变量
    java三元表达式编程规范问题
    转:Java的一道面试题----静态变量初始化过程
  • 原文地址:https://www.cnblogs.com/wangmo/p/7090664.html
Copyright © 2011-2022 走看看