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:\Users\CPP>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哈哈~

ftp服务器搭建(二)的更多相关文章

  1. 记一次ftp服务器搭建走过的坑

    记一次ftp服务器搭建走过的坑 1.安装 ①下载 wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz #要FQ ②解压 ta ...

  2. FTP-Linux中ftp服务器搭建

    一.FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp ...

  3. (转)【Java FTP及FTP服务器搭建】

    转至 http://blog.csdn.net/studyvcmfc/article/details/8147052 目录(?)[+] -[Java FTP及FTP服务器搭建] 一:本文采用apach ...

  4. Linux之匿名FTP服务器搭建

    FTP(File Transfer Protocol)是在服务器与客户端进行文件传输的一种传输协议.本次介绍的是vsftpd的软件体验ftp服务. FTP服务器默认情况下依据用户登录情况分为三种不同的 ...

  5. Linux中ftp服务器搭建

    一.FTP工作原理 (1)FTP使用端口 [root@localhost ~]# cat /etc/services | grep ftp ftp-data 20/tcp #数据链路:端口20 ftp ...

  6. FTP服务器搭建及操作(一)

    FTP服务器搭建及操作(一) FTP搭建 PHP FTP操作 搭建方法参照(windows):http://www.cnblogs.com/lidan/archive/2012/06/04/25351 ...

  7. 《Linux下FTP服务器搭建及FTP使用》

    .LOGAndy:mxtd114 <Linux下FTP服务器搭建> 0.root登录 1.安装ftp # yum -y install ftp 2.安装vsftpd # yum -y in ...

  8. ftp服务器搭建及简单操作

    ftp服务器搭建及简单操作 1. 添加一个新用户,使用名useradd testftp,然后使用passwd testftp对新添加的用户设置密码(这里设置为“1234567”). 2. 安装ftp服 ...

  9. Linux CentOS 6.5 下 vsftpd ftp服务器搭建

    Linux CentOS 6.5 下 vsftpd ftp服务器搭建 by:授客 QQ:1033553122   操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.ce ...

  10. ftp服务器搭建(windows)+实现ftp图片上传对接

    ftp服务器搭建(windows): vsftpd简介: vsftpd是“very secure FTP daemon”的缩写,是一个完全免费的.开放源代码的ftp服务器软件. 下载地址: http: ...

随机推荐

  1. C51_PID 水温控制系统

    C51_PID 水温控制系统 51CPIDUART水温控制 前言 通过C语言程序写入51单片机实现水的温度的采集,并通过控制器控制加热器给水体加热,对水体的温进行PID控制,保证温度在设定值范围内波动 ...

  2. Spring Boot中使用@JsonComponent

    文章目录 序列化 反序列化 在同一个class中序列化和反序列化 Spring Boot中使用@JsonComponent @JsonComponent 是Spring boot的核心注解,使用@Js ...

  3. Spring MVC 中的http Caching

    文章目录 过期时间 Last-Modified ETag Spring ETag filter Spring MVC 中的http Caching Cache 是HTTP协议中的一个非常重要的功能,使 ...

  4. oracle获取表字段及表注释的相关操作

    一.获取表字段: select * from user_tab_columns where Table_Name='用户表' user_tab_columns 为当前用户的columns,除此之外还有 ...

  5. 【抓包工具】tcpdump

    tcpdump - dump traffic on a network 根据使用者的定义对网络上的数据包进行截获的包分析工具. tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析.它支 ...

  6. 酷狗音乐快速转换MP3格式的方法

    喜欢听音乐的朋友们,散步跑步的时候都是随身听,音乐可以给人带来力量,让人心情愉悦,有时候甚至还可以让我们忘记烦恼和忧愁,是一种不错的解压方式,所以热爱运动的宝宝们是离不来音乐的陪伴的,这样说来随身听的 ...

  7. Mbatis逆向工程常遇错误

    org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession.### The error may e ...

  8. The 2019 Asia Nanchang First Round Online Programming Contest B Fire-Fighting Hero(阅读理解)

    This is an era of team success, but also an era of heroes. Throughout the ages, there have been nume ...

  9. 【网络基础】ARP地址解析协议

    ARP(Address Rssolution Protocol) 地址解析协议 用于将IP地址解析为MAC地址. MAC地址是设备的物理地址,是被分配给每一个网络接口卡的全球唯一序号. 全球唯一:理论 ...

  10. 如何使用Golang实现一个API网关

    你是否也存在过这样的需求,想要公开一个接口到网络上.但是还得加点权限,否则被人乱调用就不好了.这个权限验证的过程,最好越简单越好,可能只是对比两个字符串相等就够了.一般情况下我们遇到这种需要,就是在函 ...