热门标签 | 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



推荐阅读
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 基于Linux系统的Kickstart自动化服务器部署方案
    本文针对企业需求,提出了一种基于Linux系统的Kickstart自动化服务器部署方案。该方案旨在通过无盘批量安装操作系统,提高企业IT基础设施的部署效率。Kickstart是一种利用Anaconda工具实现服务器自动化安装的技术,能够显著简化和加速操作系统的安装过程。通过详细的实施规划,本文介绍了Kickstart的工作原理及其在实际部署中的应用,为企业提供了高效的自动化部署解决方案。 ... [详细]
  • CentOS 7环境下Jenkins的安装与前后端应用部署详解
    CentOS 7环境下Jenkins的安装与前后端应用部署详解 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • `chkconfig` 命令主要用于管理和查询系统服务在不同运行级别中的启动状态。该命令不仅能够更新服务的启动配置,还能检查特定服务的当前状态。通过 `chkconfig`,管理员可以轻松地控制服务在系统启动时的行为,确保关键服务正常运行,同时禁用不必要的服务以提高系统性能和安全性。本文将详细介绍 `chkconfig` 的各项参数及其使用方法,帮助读者更好地理解和应用这一强大的系统管理工具。 ... [详细]
  • 求助:在CentOS 5.8系统上安装PECL扩展遇到问题
    在 CentOS 5.8 系统上尝试安装 APC 扩展时遇到了问题,具体表现为 PECL 工具无法正常工作。为了确保顺利安装,需要解决 PECL 的相关依赖和配置问题。建议检查 PHP 和 PECL 的版本兼容性,并确保所有必要的库和开发工具已正确安装。此外,可以尝试手动下载 APC 扩展的源代码并进行编译安装,以绕过 PECL 工具的限制。 ... [详细]
  • 2016-2017学年《网络安全实战》第三次作业
    2016-2017学年《网络安全实战》第三次作业总结了教材中关于网络信息收集技术的内容。本章主要探讨了网络踩点、网络扫描和网络查点三个关键步骤。其中,网络踩点旨在通过公开渠道收集目标信息,为后续的安全测试奠定基础,而不涉及实际的入侵行为。 ... [详细]
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社区 版权所有