热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linuxftp记录,linux FTP vsftpd

linuxFTP教程vsftpd一、安装和启动#查看是否已安装:rpm-qvsftpdvsftpd-3.0.2-11.el7_2.x86_64vsftpd-vvsft

linuxFTP教程vsftpd

一、安装和启动

#查看是否已安装:rpm-q

vsftpd

vsftpd-3.0.2-11.el7_2.x86_64

vsftpd -v

vsftpd: version 3.0.2

安装 :yum -y install vsftpd

可以顺便把FTP客户端也装了:yum install ftp

检查:whereisvsftpd

vsftpd:/usr/sbin/vsftpd /etc/vsftpd

/usr/share/man/man8/vsftpd.8.gz

启动:systemctl start vsftpd

二、设置SELinux

linux系统会限制文件传输,或者访问等,使用ftp和samba都需要关闭该项

临时SELinux,重启电脑后失效

setenforce 0

#设置SELinux成为permissive模式

(关闭SELinux)

setenforce 1

#设置SELinux成为enforcing模式(开启SELinux)

永久SELinux,重启电脑后有效

vi /etc/selinux/config

SELINUX=disabled(如果有则修改,如果没有则添加)

其他方式

查询:getsebool -a | grepftp

设置:setsebool -Pftpd_full_access on

查询结果:加粗项根据需要打开

ftp_home_dir--> on

ftpd_anon_write--> on

ftpd_connect_all_unreserved -->

off

ftpd_connect_db --> off

ftpd_full_access--> on

ftpd_use_cifs --> off

ftpd_use_fusefs --> off

ftpd_use_nfs --> off

ftpd_use_passive_mode --> off

httpd_can_connect_ftp --> off

httpd_enable_ftp_server --> off

sftpd_anon_write --> off

sftpd_enable_homedirs --> off

sftpd_full_access --> off

sftpd_write_ssh_home --> off

tftp_anon_write --> off

tftp_home_dir--> on

三、设置firewall

设置:firewall-cmd --permanent --zone=public

--add-service=ftp

重启:firewall-cmd

–reload

查看:firewall-cmd --zone=public --list-all

四、测试

启动服务 : systemctl start vsftpd

本地访问和登录: ftp localhost

输入Name:anonymous或者ftp(我测试时随便的都可以)

输入密码:留空就行

登录成功后表示安装成功,可以使用ls查看测试项

该目录位于/var/ftp文件下有“pub”和“test”2项内容。

五、配置

在上述安装和测试完成后可以根据需要配置不同帐号和访问权限:

本地用户:用户在FTP服务器拥有账号,且该账号为本地用户的账号,可以通过自己的账号和口令进行授权登录,登录目录为自己的home目录$HOME(指创建帐号时分配的目录)

虚拟用户:用户在FTP服务器上拥有账号,但该账号只能用于文件传输服务。登录目录为某一特定的目录,通常可以上传和下载

匿名用户:用户在FTP服务器上没有账号,登录目录为/var/ftp(或者指定的匿名目录(可自行修改))

经过测试发现本地用户和虚拟用户不能同时使用,除非把本地帐号加入到虚拟账号列表里??为啥呢?

配置文件目录:/etc/vsftpd/

账户设置调用:/etc/pam.d/vsftpd

5.1 本地用户使用模式:

1.添加配置:

vim /etc/vsftpd/vsftpd.conf

查看并核对以下内容:

local_umask=022#基本项

dirmessage_enable=YES#基本项

xferlog_enable=YES#基本项

connect_from_port_20=YES#基本项

xferlog_std_format=YES#基本项

listen=NO#基本项

YES也可以,独立启动

listen_ipv6=YES#基本项

pam_service_name=vsftpd#基本项

userlist_enable=YES#基本项

tcp_wrappers=YES#基本项

guest_enable=YES#没有则添加

guest_username=ftpuser#没有则添加,之后会添加这个帐号到linux系统中,并且对该帐号设置的目录将会作为其他用户登录的主目录

local_root=/var/ftp/$USER

#任选项,如果想要不同用户登录后进入到不同的目录下,可以添加这个,也可以使用固定的目录,比如/var/ftp/upload而不是

ftpuser的帐号目录。

注意:我使用这个的时候没有成功,它无法识别$USER这个参数,尝试各种方法都不行,但是也可以使用local_root=。。。来指定目录

chroot_local_user=YES

allow_writeable_chroot=YES#如果添加了local_root请添加这两项,否则会提示chroot失败

anonymous_enable=NO#基本项,是否允许匿名登录,默认是YES,测试时可以登录,自行定义。还有很多关于匿名用户的配置,以下添加了2个,

anon_root=/var/ftp#任选项,匿名用户登录后的目录

ftp_username=ftp#任选项,根据是否开启匿名选择,定义匿名用户的账户名称,默认值为ftp,也可以修改使用。no_anon_password=YES        #任选项,匿名用户登录时是否询问口令。设置为YES,则不询问。默认NO

以下三项虽然是看着是设置匿名用户的,但是测试结果是,关闭匿名用户后也要开启这三项,根据需要设置后才能上传啥的。目前没有找到其他参数,

anon_upload_enable=YES#任选项,是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO

anon_mkdir_write_enable=YES#任选项,是否允许匿名用户创建目录。只有在write_enable设置为YES时有效。且匿名用户对上层目录有写入的权限。默认为NO

anon_other_write_enable=YES#任选项,若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

download_enable=YES#任选项,设置下载权限,看情况啦,不需要用户下载可以不添加,需要的话请设置为YES

2.添加用户

添加宿主用户: ftpuser指定

`/var/ftp/`目录

useradd -g root -M -d /var/ftp-s /sbin/nologin

ftpuser

-g

root表示添加ftpuser到root用户组

-M不创建用户主目录

-d定义主目录地址

-s

/sbin/nologin设置用户不能使用shell登录,比如通过putty登录到系统,或者本地登录到系统

没有测试不添加到root组的情况

设置用户ftpuser的密码:passwd

ftpuser

下面这个操作我感觉没啥用

/var/ftp的所有权给ftpuser.root

chown -R ftpuser.root

/var/ftp

添加普通用户:useradd -s /sbin/nologin test1

useradd-s /sbin/nologin test2

………………………

然后依次passwd test1修改密码等等等

3.测试登录

重启服务:systemctl restart vsftpd

运行:ftp localhost

用户名:test1

密码:刚才设置的,然后。。。登录成功啦啦啦,如果不成功建议查看“设置SELinux”

然后也可以远程访问下啦啦啦;ftp://ip

好啦,大功告成啦啦啦啦啦

5.2 虚拟用户使用模式:

1.添加配置:加粗项

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

listen=NO

listen_ipv6=YES

pam_service_name=vsftpd

userlist_enable=YES

tcp_wrappers=YES

guest_enable=YES

guest_username=ftpuser

user_config_dir=/etc/vsftpd/vuser_conf

#设置虚拟用户的配置文件,可设置权限,目录地址等

virtual_use_local_privs=YES

chroot_local_user=YES

allow_writeable_chroot=YES

anon_upload_enable=YES

#这四项可去掉,在用户配置中设置

anon_mkdir_write_enable=YES

anon_mkdir_write_enable=YES

download_enable=YES

2.添加用户

编辑虚拟用户名单文件:touch

/etc/vsftpd/vuser_passwd

#第一行账号,第二行密码,注意:不能使用root做用户名,系统保留)

vi /etc/vsftpd/vuser_passwd

test2  #任意起名字

123456

ftpuser

#虽然添加了宿主用户,如果使用虚拟模式,不添加到此处依然无法登录,当然也可以使用很多其他用户)

123456

#保存退出

生成虚拟用户数据文件

db_load -T -t hash -f/etc/vsftpd/vuser_passwd

/etc/vsftpd/vuser_passwd.db

chmod 600 /etc/vsftpd/vuser_passwd.db

3.创建用户配置

mkdir /etc/vsftpd/vuser_conf

#建立虚拟用户个人vsftp的配置文件,

cd/etc/vsftpd/vuser_conf

#进入目录

touch test2  ftpuser

#这里创建两个虚拟用户配置文件,如果不创建,用户登录则会使用全局配置,直接进入到宿主用户的根目录。并且使用配置1中的配置权限。

每一个文件配置文件都差不多,请根据用户的具体权限设置。

local_root=/var/ftp/test2#任选项 用户配置目录,这个地方不一样

切记:要对这个文件夹地址配置可以访问的权限才可以登录成功

write_enable=YES#任选项

允许本地用户对FTP服务器文件具有写权限,可以设置本地用户的上传权限,默认是有的

anon_upload_enable=YES#任选项,是否允许匿名用户上传文件。只有在write_enable设置为YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO

anon_mkdir_write_enable=YES#任选项,是否允许匿名用户创建目录。只有在write_enable设置为YES时有效。且匿名用户对上层目录有写入的权限。默认为NO

anon_other_write_enable=YES#任选项,若设置为YES,则匿名用户会被允许拥有多于上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

download_enable=YES#任选项,设置下载权限,看情况啦,不需要用户下载可以不添加,需要的话请设置为YES

4.修改文件夹权限,因为现在是root创建的

chmod -R 777

/var/ftp/test2

5.修改服务使用的用户文件

vim/etc/pam.d/vsftpd

a4c26d1e5885305701be709a3d33442f.png选择使用刚才生成的db文件

#%PAM-1.0

session

optional

pam_keyinit.so

force revoke

#auth

required

pam_listfile.so item=user sense=denyfile=/etc/vsftpd/ftpusers

onerr=succeed

#auth

required

pam_shells.so

#auth

include

password-auth

#account

include

password-auth

auth required pam_userdb.so

db=/etc/vsftpd/vuser_passwd

account required pam_userdb.so

db=/etc/vsftpd/vuser_passwd

session

required

pam_loginuid.so

session

include     password-auth

6.测试啦啦啦

同上

安装遇到的问题:

1.配置虚拟用户时各种不能登录到我设置的目录下,登录提示chroot失败,我发现配置也是对的,为啥呢

各种实验之后:发现我拷贝的别人的参数过去,不知道有啥编码问题等等等,最后手动打上去就好了,唉

2.不能上传下载:一定要对设置的local_root改变文件夹权限,因为当前使用root创建的

以下是安装过程时的参考文档,小白一枚

http://www.jb51.net/article/103904.htm

http://blog.csdn.net/lhq9220/article/details/6544755

http://www.cnblogs.com/jefflee168/p/6575014.html



推荐阅读
  • PHP程序员玩转Linux系列 搭建FTP代码开发环境
    PHP程序员玩转Linux系列搭建FTP代码开发环境-PHP程序员玩转Linux系列文章:有些同学可能觉得我写的都是啥yum安装的,随便配置一下而已,没啥技术含量,我的目的是让大家 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • linux ftp 线程数设置,Linux搭建ftp在windows下这么访问,需要怎么设置【设置vsftp最大连接数和每个ip的最大连接数】...
    文章来源:http:zhidao.baidu.comlink?urlLOfStD1kcxGhI_D5qC7oka3_4QZc1nn1SJwWaSd4onWoVl5Wt ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • linux 命令——screen
    最近遇到一个东西aria2,这个玩意,这个是啥呢?Aria2是一个轻量级Linux下载软件,支持HTTPHTTPS,FTP,SFTP,BitTorrent和磁力链接(官方版),公司 ... [详细]
  • 阿里云如何部署php(2023年最新分享)
    导读:很多朋友问到关于阿里云如何部署php的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • linux搭建FTP
    linux下FTP的搭建及优化[日期:2007-11-04]李磊19840817吴康[字体:大中小]首先安装Linux企业版第一张光盘中的vsftpd- ... [详细]
author-avatar
520TING小妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有