linux 安装 ftp 实现文件共享
转载:http://blog.sina.com.cn/s/blog_165e646820102xe1q.html
参考:
1、http://www.cnblogs.com/mrcln/p/6179673.html
2、http://www.cnblogs.com/orzlin/p/5600529.html
3、linux下ftp配置文件详解:http://www.cnblogs.com/mrcln/p/6189665.html
1.切换到root用户
2.查看是否安装vsftp,我这个是已经安装的。
[root@localhost vsftpd]# rpm -qa |grep vsftpd
vsftpd-3.0.2-11.el7_2.x86_64
3.如果没有发现,则安装。
yum install vsftpd* -y
4.启动vsftpd服务,以及重启命令(centos7.0以上版本)
[root@localhost vsftpd]# /bin/systemctl start vsftpd.service
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
低版本试一下这些命令:
/etc/init.d/vsftpd restart
启动ftp命令 #service vsftpd start 停止ftp命令 #service vsftpd stop 重启ftp命令 #service vsftpd restart
设置自启:chkconfig vsftpd on
5.测试一下能否登录FTP了,先安装一个ftp客户端组件。
yum -y install ftp
尝试登录一下
ftp localhost
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
但是,外网是访问不了的,所以还要继续配置。
6.取消匿名登录
vi /etc/vsftpd/vsftpd.conf
把第一行的 anonymous_enable=YES ,改为NO
重启
[root@localhost vsftpd]# /bin/systemctl restart vsftpd.service
7.创建一个组,用于存放ftp用户
groupadd ftpgroups
8.创建ftp用户,并加入ftpgroups组,/home/ftp是自己建的目录,不存在就自己创建一个
useradd -d /home/ftp/ftptest -g ftpgroups ftptest
设置密码
passwd ftptest
设置不允许用于用户登录
usermod -s /sbin/nologin ftptest
可以看到已经建好了
[root@localhost vsftpd]# ls /home/ftp
ftpn ftptest
这时候重启一下vsftpd服务
/bin/systemctl restart vsftpd.service
登录一下看,可以登录了,但是发现也能访问上层目录,甚至根目录,这不是我们希望的,修改一下配置文件让其只能访问自身目录
vi /etc/vsftpd/vsftpd.conf
如下设置
chroot_local_user=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
另外,从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。
要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列项:
allow_writeable_chroot=YES
好了,这样就只能访问自身所属目录。
如果希望某个用户可以访问根目录,把用户名加入
/etc/vsftpd/chroot_list
不存在就创建这个文件,一行一个用户名。
如果还是登陆不了ftp,那很有可能是selinux的问题,这个东西把他关掉就行
vi /etc/selinux/config
SELINUX=enforcing 设置成SELINUX=disabled
重启一下服务器
reboot
重启完了别忘了把vsftpd服务打开,默认是自启的。
如果连接不上,很可能是防火墙阻止了,尝试关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
如果出现远程文件夹无法显示的情况,请使用主动模式连接,在你的ftp工具上设置。
linux服务器修改ftp默认21端口方法
1、登录服务器,打开vsftp.conf文件
# vim /etc/vsftpd/vsftpd.conf
2、在文件末尾增加listen_port=8021
#remote_charset=CP1251
#
# Enable this options if you have double "я"
#
#double_377=0
listen_port=8021
3、打开/etc/services文件
# vim /etc/services
4、找到ftp选项并将21修改成你设置的端口,本文为8021
# 21 is registered to ftp, but also used by fsp
ftp 8021/tcp
ftp 8021/udp fsp fspd
5、重启vsftp服务
# /etc/init.d/vsftpd restart
6、使用netstat -utlpn | grep vsftp命令查看设置的端口,确认是否成功
# netstat -utlpn | grep vsftp
tcp 0 0 0.0.0.0:8021 0.0.0.0:* LISTEN 23619/vsftpd
注:实验需要修改端口号,关闭selinux ,实现ftp访问。
linux 安装 ftp 实现文件共享的更多相关文章
- 好记性不如烂笔头-nginx安装环境与Linux安装ftp组件
Nginx安装环境 1. Nginx安装环境 Nginx是C语言开发,建议在linux上运行,我参加工作这些年来一直使用Linux发行版之一的 Centos作为安装环境. 1.1 gcc 安装Ngin ...
- Linux 安装FTP服务
Linux 安装FTP服务,简单入门 环境: 虚拟机:Oracle VM VirtualBox. 系统:CentOS 7. (1)判断是否安装了ftp: rpm -qa | grep vsftpd 或 ...
- Linux安装FTP服务
转自:http://blog.csdn.net/huangbiao86/article/details/6641952 ftp服务器 1. 在Linux和其他机器之间共享文件(在linux下安装ft ...
- Linux安装ftp服务-详细步骤
最近项目中用到了FTP服务器,于是整理了一份在Linux服务器上安装FTP的详细步骤供大家分享. 1.首先连接上自己的Linux服务器.我的Linux是CentOS 6 2.检查Linux服务器上是否 ...
- linux安装ftp组件
1 安装vsftpd组件 linux系统安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install v ...
- Linux安装ftp组件过程
1 安装vsftpd组件 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. [root@bogon ~]# yum -y install vsftpd 2 ...
- linux 安装 ftp
1 安装 vsftpd 查看是否已经安装 vsftpd rpm -qa | grep vsftpd 如果没有 则安装 安装命令如下 yum -y install vsftpd 设置开机启动 chkc ...
- linux安装ftp服务器
Ftp(文件传输协议) 概念 FTP是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”.用于Internet上的控制文件的双向传输.同时,它也是一个应用 ...
- linux安装ftp
安装vsftpd 1.以管理员(root)身份执行以下命令 1. yum install vsftpd 2.设置开机启动vsftpd ftp服务 1. chkconfig vsftpd on 3. ...
随机推荐
- javascript高级程序设计第3版——第8章 BOM(浏览器对象模型)
第八章,浏览器对象模型 主要介绍了window的几个对象以及框架,窗口的关系,各个浏览器对象的属性以及方法:
- HTTP Basic和Digest认证介绍与计算
一.说明 web用户认证,最开始是get提交+把用户名密码存放在客户端的cookie中的形式:在意识到这样不安全之后逐渐演变成了post提交+把用户凭证放到了服务端的session中的形式(当然ses ...
- 总结const、readonly、static三者的区别
const:静态常量,也称编译时常量(compile-time constants),属于类型级,通过类名直接访问,被所有对象共享! a.叫编译时常量的原因是它编译时会将其替换为所对应的值: b.静态 ...
- spring(IOC)动态代理
姓名:黄于霞 班级:软件151 1.引入Spring IOC的核心jar包,创建IOC的配置文件beans.xml,内容如下: 1 <?xml version="1.0&qu ...
- Jsp的table导出Excel
var idTmr; function getExplorer() { var explorer = window.navigator.userAgent ; //ie if (explorer.in ...
- [NOIP2013D1]
T1 Problem 洛谷 Solution 感觉我写的也不是正解... 我是先找出每个循环节的长度l...然后用快速幂求出10 ^ k % l的值.. Code #include<cmath& ...
- VsCode编写博客发布
发布图片测试: Java代码测试: //计算机等级考试p6例1.2 //编辑者:鸿灬嗳 package test00; class Circle{ static double PI=3.1415926 ...
- Oracle 生成工作日历表
select to_char(everyDay, 'yyyy-mm-dd') as dt, to_char(everyday, 'yyyy') as yr, to_char(everyday, 'mm ...
- 考研计算机复试(广东工业大学C语言复试2018笔试题)(精华题选)
1.obj文件是:(二进制文件) 2.函数func(float x){printf("%f",x+x);}的类型是() A.void B.int类型 C.无法确定 3.若有定义:i ...
- 表单传参,在action中的参数得不到
写上面这个的时候,发现传过去的url路径是这样的 在action后面的pro=login得不到. 只需要将method中的get改成post就可以了