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

    1.已经安装好了vsftpd  进入到根目录下的/etc目录 ls查看一下

    2.拷贝一下上面的两个配置文件 我拷贝到了我新建的目录中了

    3.查看现在的网络连接方式——我的是-net方式 当然其他方式也行 但有些区别 这个我打算再另写一篇有关计算机网络方面的我的看法 好了 再继续看这个ftp  先保证本机与虚拟机的网能ping的通 如图:

     

    正好在一个网段内 能ping通

     4.接下来就开始配置吧

    在/etc的目录下vim vsftpd.conf

    先来说明一下这些参数的作用

    listen=YES/NO(YES) 
    设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES,此为默?认值。建议不要更改,有很多与服务器运行相关的配置命令,需要在此模式下才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受到xinetd?服务的管控,功能上会受到限制。 

     listen_ipv6=YES/NO (YES) 

    设置传输协议

    anonymous_enable=YES/NO 

    设置是否为匿名登录 YES为匿名登录

    anon_upload_enable=YES       

    设置匿名用户是否能上传  YES为匿名能上传

    anon_mkdir_write_enable=YES  

    匿名用户是否能创建目录   YES为匿名能创建

    anon_other_write_enable=YES 

    修改文件名和删除文件  YES为匿名能删除

    local_enable=YES

    是否允许本地用户登录   

    local_umask=022 

    umask 默认755   这个是用户权限设置  即:777-022=755

    write_enable=YES   是否本地用户有写权限 YES为本地有写权限

    chroot_local_user=YES

    本地用户禁锢在宿主目录中   

    chroot_list_enable=YES

    是否将系统用户限止在自己的home目录下   

    chroot_list_file=/etc/vsftpd.chroot_list

    列出的是不chroot的用户的列表  

    chown_upload=YES

    是否改变上传文件的属主   

    chown_username=username

    如果是需要输入一个系统用户名   

    userlist_enable=YES   

    userlist_deny=NO   


    ftpd_banner=Welcome to chenlf FTP service.

    设置欢迎信息   

    dirmessage_enable=YES

    是否显示目录说明文件, 需要收工创建.message文件   

    message_file=

    设置访问一个目录时获得的目录信息文件的文件名,默认是.message   

    xferlog_enable=YES

    是否记录ftp传输过程   

    xferlog_file=/var/log/vsftpd.log

    ftp传输日志的路径和名字   

    connect_from_port_20=YES

    是否确信端口传输来自20(ftp-data)   

    nopriv_user=ftpsecure

    运行vsftpd需要的非特权系统用户默认是nobody   

    async_abor_enable=YES

    是否允许运行特殊的ftp命令async ABOR.   

    5.我暂时的配置

    listen=NO 一开始改为YES 运行服务器自行退出 error 不清楚什么原因

    userlist等参数没加 本地用户hello没加入到vsftpd.chroot_list中

    其他基本没变

     

     

     测试我有没有读写权限

    我能进入到上一层目录 即:我能进入到父目录下 因为chroot没加入这个名单

    只能在/home家目录下有创建读写权限

    如果把hello写入到chroot中 就登不上了

    我不清楚为什么chroot_local_user=NO and chroot_list_enable=NO 或者chroot_local_user=YES and chroot_list_enable=YES 则chroot_list_file的目录的文件的用户照样能返回上一层目录 而这两个参数都不一样时 则远程主机关闭连接  不清楚为什么 按道理说这两个参数第一个是是否启用root 第二个参数是root_file的名单是否能返回上一层目录的 可实现的结果却不一样

    我现在把匿名参数改为了YES 增加了一个匿名访问参数anon_root=/var 如图:

    关于userlist=YES 表示在userlist_file=/目录文件的名单不能访问ftp服务器 NO表示允许访问

    userlist_deny=NO

    userlist_file=/

    注意:

    500 OOPS: vsftpd: refusing to run with writable root inside chroot()
    500 OOPS: priv_sock_get_cmd

    当出现这个时,说明chroot列表里没有这个用户名 同时将访问的家目录改为没有写的权限目录

    我先回答上面的 因为我安装的是最新版本的 可能有些变化

    chroot_local_user=YES chroot_list_enable=NO 然后root_list列表添加hello用户 并且在/home改变hello的权限变为r-x就可以了 这样访问不了父目录

    至于有没有其他原因 目前暂时不清楚 欢迎大家来评论补充

    我再补充一下:

    之前local_root=/var/CPPC

    发现登陆不了 总是远程机子关闭连接

    原因是local_root=/var/CPPC的访问目录的读写权限问题 将访问目录的读写权限改为没有“写”的权限就行了

    6.现在我们创建一个虚拟用户 CPPCPP 密码为CPPCPP

     useradd -s /bin/sh CPPCPP

    passwd:

    chmod 755 /var/CPPC

    chown CPPCPP:CCC /var/CPPC

    usermod -g CCC CPPCPP

    usermod -g CCC hello

    或者 usermod -G CCC hello

    重启vsftpd服务

    总结问题:

    1.之前为什么新建的用户不能登陆的原因在这里

    之前不能登陆的原因是因为CPPCPP的密码为! 禁用了

    在/etc/shadow /etc/passwd可以看到

    解禁 usermod -U CPPCPP 或者passwd -u CPPCPP 或者 直接passwd CPPCPP 输入密码就行了

    但是现在遇到了另一个问题:

    C:UsersCPP>ftp 192.168.93.149
    连接到 192.168.93.149。
    220 Welcome to blah FTP service.
    200 Always in UTF8 mode.
    用户(192.168.93.149:(none)): CPPCPP
    331 Please specify the password.
    密码:
    500 OOPS: cannot change directory:/home/CPPCPP
    500 OOPS: priv_sock_get_cmd
    远程主机关闭连接。

    我在网上找了一下:有需要setsebool -P ftpd_disable_trans 1 但是我感觉不太对 我没有安装这个selinux 怎么会有这个问题呢?后来我在/home创建这个用户CPPCPP 发现没有这个问题了

    现在又遇到一个问题了:

    500 OOPS: vsftpd: refusing to run with writable root inside chroot ()

    具体解决方法:

    在vsftpd.conf配置文件添加这一项allow_writeable_chroot=YES

    还是需要感谢百度 Google 博客园和博客们的总结分享  我这里做一下我遇到的问题的总结和心得 O(∩_∩)O哈哈~

  • 相关阅读:
    git上传
    #if debug 模式
    .net core 获取appsetting配置信息
    映射的问题
    net core 支付宝回调参考
    .net core 3.1开发遇到的问题
    .net core 中对象转json以及反序列化
    auotmapper在net core 3.1的使用
    net core 3.1 webapi的开发遇到的问题
    OCP prepare 20140703
  • 原文地址:https://www.cnblogs.com/CPPLinux/p/9782604.html
Copyright © 2011-2022 走看看