一:基本知识
1
:虚拟用户:与系统无关联,不能登入系统,只能访问FTP服务器
2:vsftp的服务进程是vsftpd
3:vsftpd的配置文件是/etc/vsftpd/vsftpd.conf.
4:vsftpd的用户文件是/etc/vsftpd/ftpusers
5:vsftpd的用户文件是/etc/vsftpd/user_list
6:推荐使用虚拟用户登入vs-FTP服务器

二、安装vsftp

查看是否安装vsftpd服务

1. [root@localhost~]#chkconfig--list
如果没有安装,安装vsftpd服务

1. [root@localhost~]#yum-yinstallvsftpd

三、配置虚拟用户

1)检查服务器selinux是否开启,如果开启,关闭selinux

1. [root@localhost~]#/usr/sbin/sestatus-v

2. SELinuxstatus:enabled

1.1)关闭selinux方法

修改/etc/selinux/config 文件, 将SELINUX=enforcing改为SELINUX=disabled, 重启机器即可

2)创建虚拟用户文本文件,添加虚拟用户和密码

1. [root@localhost~]#cd/etc/vsftpd/

2. [root@localhost~]#touchvuser.txt

奇数行是用户名,偶数是密码
比如:
lowkeyman
123456

3)生成虚拟数据库文件(*如果db_load没有安装,yum install db4-utils db4-develdb4-4.3安装才能使用。

1. [root@localhost~]#db_load–T–thash–f/etc/vsftpd/vuser.txt/etc/vsftpd/vuser.db

4)配置PAM文件,目的是对客户端进行验证

编辑/etc/pam.d/vsftpd文件,批注所有内容,后添加:

1. authrequiredpam_userdb.sodb=/etc/vsftpd/vuser

2. accountrequiredpam_userdb.sodb=/etc/vsftpd/vuser

*不能写成db=/etc/vsftpd/vuser.db
5
)修改虚拟数据库文件vuser.db的权限为 700

1. [root@localhost~]#chmod700vuser.db

6)增加一个系统用户vuser ,使用它来对应所有虚拟用户,虚拟用户使用系统用户来访问ftp服务器。

1. [root@localhost~]#mkdir/vsftp

2. [root@localhost~]#useradd-d/var/ftp/pub-s /sbin/nologinvuser

3. [root@localhost~]#chownvuser:vuser/var/ftp/pub

7)修改vsftpd.conf配置文件,使虚拟用户可以访问vsftpd服务器,增加以下参数

修改/etc/vsftpd/vsftpd.conf如下:

anonymous_enable=NO(是否允许匿名登录FTP 服务器,默认设置为YES 允许,即用户可使用用户名ftp 或anonymous 进行ftp 登录,口令为空。如 不允许匿名访问设置为NO)

local_enable=YES(是否允许本地用户登录FTP服务器,默认设置为YES允许,本地用户登录后会进入指定的用户主目录,而匿名用户登录后进入匿名用户的下载目录/var/ftp/pub;设置虚拟账户必须设会YES)

local_umask=022(设置本地用户的文件掩码为缺省022,得到上传文件的初始权限)

#anon_upload_enable=YES(是否允许匿名用户上传文件,须将write_enable=YES,默认设置为YES 允许)

#anon_mkdir_write_enable=YES(是否允许匿名用户创建新文件夹,默认设置为YES允许)

xferlog_enable=YES(默认值为NO如果启用此选项,系统将会维护记录服务器上传和下载情况的日志文件,默认情况该日志文件为/var/log/vsftpd.log,也可以通过下面的xferlog_file 选项对其进行设定)

connect_from_port_20=YES(设定 FTP 服务器将启用FTP数据端口的连接请求,端口20为ftp-data数据传输,21 为连接控制端口)

#chown_uploads=YES(设定是否允许改变上传文件的属主,与下面一个设定项配合使用)

#chown_username=whoever(设置想要改变的上传文件的属主,如果需要,则输入一个系统用户名,例如可以把上传的文件都改成root 属主。whoever任何人)

#xferlog_file=/var/log/xferlog(设定系统维护记录FTP 服务器上传和下载情况的日志文件,/var/log/vsftpd.log是默认的,也可以另设其它)

xferlog_std_format=YES

idle_session_timeout=600(设置数据传输中断间隔时间,此语句表示空闲的用户会话中断时间为600秒,即当数据传输结束后,用户连接FTP服务器的时间不应超过600秒,可以根据实际情况对该值进行修改)

#data_connection_timeout=120(设置数据连接超时时间,该语句表示数据连接超时时间为120秒,可根据实际情况对其修改)

#nopriv_user=ftpsecure(运行 vsftpd 需要的非特权系统用户,缺省是nobody)

#async_abor_enable=YES

#ascii_upload_enable=YES

#ascii_download_enable=YES

#ftpd_banner=Welcome to blah FTP service.

#deny_email_enable=YES

#banned_email_file=/etc/vsftpd/banned_emails

#chroot_list_enable=YES(设置为 NO 时,用户登录FTP 服务器后具有访问自己目录以外的其他文件的权限,设置为 YES时,用户被锁定在自己的宿主目录中,vsftpd 将在下面 chroot_list_file 选项值的位置寻找 chroot_list 文件,此文件需用户建立,再将需锁定在自己宿主目录的用户列入其中,每行一个用户)

# (default follows)

#chroot_list_file=/etc/vsftpd/chroot_list(此文件需自己建立,被列入此文件的用户,在登录后将不能切换到自己目录以外的其他目录,由 FTP 服务器自动地 chrooted 到用户自己的home 目录下,使得 chroot_list 文件中的用户不能随意转到其他用户的FTP home 目录下,从而有利于FTP 服务器的安全管理和隐私保护)

listen=YES(如果设置为YES,则 vsftpd 将以独立模式运行,由vsftpd 自己监听和处理连接请求)

#listen_ipv6=YES(设定是否支持IPV6

pam_service_name=vsftpd(设置 PAM 外挂模块提供的认证服务所使用的配置文件名,即/etc/pam.d/vsftpd 文件,此文件中file=/etc/vsftpd/ftpusers 字段,说明了PAM 模块能抵挡的帐号内容来自文件/etc/vsftpd/ftpusers 中)

userlist_enable=YES(此选项默认值为NO,则不启用user_list文件;若此项设为YES ,则启用user_list 文件,而如果同时设置了 userlist_deny=YES ,则 user_list 文件中的用户将不允许登录FTP 服务器,甚至连输入密码提示信息都没有,直接被FTP 服务器拒绝,如果userlist_deny=NO,将则只允许user_list文件中的用户登陆FTP服务器)

userlist_deny=YES(若已启用userlist_enable项,此项默认为YES,则阻止user_list 文件中的用户登录FTP 服务器;反之,则只允许user_list文件中的用户登录)

tcp_wrappers=YES(表明服务器使用tcp_wrappers作为主机访问控制方式)

write_enable=NO(决定是否允许一些FTP命令去更改文件系统。包括上传文件,删除文件,新增目录,删除目录)

download_enable=NO(决定是否允许下载文件,如果设为NO,下载请求将返回“permission denied”)

guest_enable=YES(如果启用,所有的非匿名用户登录时将被视为游客,其名字将被映射为guest_username里所指定的名字。采用虚拟用户必须设置该选项)

guest_username=vuser(设置当游客进入后,其将会被映射的名字。这里设置为“vuser”,即虚拟用户登陆ftp后被映射的本地用户名)

virtual_use_local_privs=YES(虚拟用户和本地用户权限相同。很重要,保证虚拟用户有和映射的本地用户相同的权限)

chroot_local_user=YES(设置虚拟用户被锁定在自己的宿主目录中。)

user_config_dir=/etc/vsftpd/user_config(定义用户配置文件的目录)

上表中标红的参数为重要的修改项,每项参数都在其后面的括号中有简单的说明。当然还有其他的很多参数来配置VSFTPD,这里不一一例句,附录中将会进行统一的说明。



1. guest_enable=YES####激活虚拟账户

2. guest_username=vuser####把虚拟账户绑定为系统账户vuser

3. pam_service_name=vsftpd####使用PAM验证

8)设置虚拟用户的主配置文件,编辑vsftpd.conf文件,添加:

1. user_config_dir=/etc/vsftpd/vsftpd_user_conf

9)建立vsftpd_user_conf

1. [root@localhost~]#mkdir/etc/vsftpd/vsftpd_user_conf

10)设置虚拟用户配置文件,与虚拟账户同名

1. [root@localhost~]#touch/etc/vsftpd/vsftpd_user_conf/lowkeyman

11)编辑虚拟账户lowkeyman的配置文件lowkeyman,是虚拟账户lowkeyman获得相应的权限

1. anon_world_readable_only=NO###浏览FTP目录和下载

2. anon_upload_enable=YES###允许上传

3. anon_mkdir_write_enable=YES###建立和删除目录

4. anon_other_write_enable=YES####改名和删除文件

5. local_root=/var/ftp/pub####指定虚拟用户在系统用户下面的路径,限制虚拟用户的家目录,虚拟用户登录后的主目录。

centos 6.5下 vsftp 虚拟用户配置的更多相关文章

  1. ios – Xcode警告:“没有处理文件的规则”和“找不到目录”

    重命名我的项目文件夹后,我收到以下错误消息:什么可能出错?解决方法关于第一个警告,您可以在项目设置中的“构建阶段”中检查XCode,即头文件不会出现在“编译源”列表中.

  2. 你如何将xcode项目转换为cocoapod?

    我有一段代码,我发现我在多个不同的项目中重复使用,所以我想把它变成一个cocoapod并使用私人cocoapod仓库.我的问题是如何将xcode项目设置为cocoapod?它应该是一个静态库还是一个带有appdelegate的空“项目”?

  3. ios – 如何将文件添加到主包的/ Library / Sounds目录中?

    根据Apple’sdocumentation,/Library/Sounds中的声音文件将在尝试播放声音时由系统搜索.如何将声音文件添加到此文件夹?适用于iOS的正确文档应为here总之,您只需将声音文件作为应用程序包的非本地化资源添加到项目中.

  4. ios – 资产目录与文件夹参考:何时使用其中一个?

    我可以将文件放入Assets.xcassets,或者我可以将文件放入文件夹引用.我何时会选择一个而不是另一个?

  5. ios – 从icloud备份中限制sqlite-wal和sqlite-shm

    我是第一次使用coredata,我必须从文档目录中的iCloud备份限制sqlitedb文件,我使用下面的代码完成了它//阻止iCloud备份文档目录文件夹现在我不明白的是,我们还需要从icloud备份中限制sqlite-wal和sqlite-shm文件,如果是,那么如何从icloud备份限制sqlite-wal和sqlite-shm文件我想要一个解决方案,而无需从文档目录文件夹中更改sqlitedb位置…

  6. iOS:如何从文档目录中删除具有特定扩展名的所有现有文件?

    当我更新我的iOS应用程序时,我想删除Documents目录中的任何现有sqlite数据库.现在,在应用程序更新时,我将数据库从软件包复制到文档目录,并通过附加软件包版本来命名它.因此,在更新时,我还想删除可能存在的任何旧版本.我只是希望能够删除所有sqlite文件,而无需循环浏览并查找以前版本的文件.是否有任何方法可以对removeFileAtPath:方法进行通配符?解决方法那么,你想要删除所有*.sqlite文件?

  7. .dylib在Debug中链接,在XCode中找不到适用于iPhone的版本

    所以我已经将libxml2.2.dylib库包含在我的iPhoneXCode项目中,以创建一些Xml和XPath解析实用程序.当我编译并运行在模拟器和设备的调试模式时,我没有问题,但是,当我切换到发布模式我得到…

  8. ios – 从文件目录加载UIImage

    我正在尝试从文件目录加载一个UIImage,并将其设置为UIImageView,如下所示:但是,每当我尝试以上,图像从不加载.该图像在Documents/MyAppCustomDirectory/school.png中.以上是否正确从该目录加载?我也尝试了其他几个:UIImageimageWithContentsOfFile,以及基于SO响应的其他方法.解决方法要获取您应该使用的文档目录:我不太清

  9. Xcode 6 / iOS 8模拟器数据和软件包文件夹脚本

    随着xcode6的最新更改,它看起来像.app文件和文档文件夹不再驻留在iPhone模拟器目录中的同一个文件夹中.以前,我们可以访问目录和.app文件但在Xcode6中,模拟器目录是完全不同的:和其中CryptNumber1,2和3都不同.有没有办法找到包含.app文件的文件夹后,我可以得到相应的文件夹?我有这个麻烦.为什么…?

  10. ios FTP使用NSURLSession上传

    我试图通过FTP将文件上传到服务器.根据NSK的NSURLSession类支持FTP操作.有一个着名的AppleDeveloperblog也支持.但还不清楚NSURLSessionAPI是否支持ftp上传?

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部