CentOS FTP安装及配置

CentOS  FTP安装及配置

LINUX下实现FTP服务的软件很多,最常见的有vsftpd,Wu-ftpd和Proftp等.Red Hat Enterprise Linux中默认安装的是vsftpd.
访问FTP服务器时需要经过验证,只有经过了FTP服务器的相关验证,用户才能访问和传输文件.vsftpd提供了3种ftp登录形式:

    (1)anonymous(匿名帐号)
使用anonymous是应用广泛的一种FTP服务器.如果用户在FTP服务器上没有帐号,那么用户可以以anonymous为用户名,以自己的电子邮件地址为密码进行登录.当匿名用户登录FTP服务器后,其登录目录为匿名FTP服务器的根目录/var/ftp.为了减轻FTP服务器的负载,一般情况下,应关闭匿名帐号的上传功能.

    (2)real(真实帐号)
real也称为本地帐号,就是以真实的用户名和密码进行登录,但前提条件是用户在FTP服务器上拥有自己的帐号.用真实帐号登录后,其登录的目录为用户自己的目录,该目录在系统建立帐号时系统就自动创建.

    (3)guest(虚拟帐号)
如果用户在FTP服务器上拥有帐号,但此帐号只能用于文件传输服务,那么该帐号就是guest,guest是真实帐号的一种形式,它们的不同之处在于,geust登录FTP服务器后,不能访问除宿主目录以外的内容.

===================================================================

FTP的安装   (vsftp默认安装完之后,就允许匿名用户和本地用户登陆)

1、检测是否安装了FTP :[root@localhost ~]# rpm -q vsftpd

      如果安装了会显示版本信息:

      [root@localhost ~]# vsftpd-2.0.5-16.el5_5.1

      否则显示:[root@localhost ~]# package vsftpd is not installed

2、如果没安装FTP,运行yum install vsftpd命令

  具体的细节如下:(如果无法更新,你先配置能访问互联网,我有文档叫 CentOS 在 VMware下,如何联网到Internet的解决办法 可以解决无法上网的问题)

  [root@localhost ~]# yum install vsftpd

  [root@localhost ~]# touch /var/log/vsftpd.log     #创建vsftp的日志文件

3、 不应该给root用户开启 ftp的功能,因为别人就能用ftp一直测试你root的密码 (默认是禁止root用户登录的,此处只用于说明,不需要操作)  

 
4、执行以下命令

  # setsebool -P ftp_home_dir=1    (SELinux命令,Redhat从FC3开始,就使用了SELinux来增强安全。为防止出现下面 500 OOPS 的错误
     -P 参数表示永久有效。

     ftp连接的时候 出现 "500 OOPS:cannot change directory:/" 错误: 修改方法:  (会出现在虚拟用户登录的情况下)

     setsebool -P ftp_home_dir on 或者 setsebool -P ftpd_disable_trans on
     setsebool -P ftp_home_dir=1 或者 setsebool -P ftpd_disable_trans=1 效果同上

  修改/etc/vsftpd/vsftpd.conf,在最后一行处添加local_root=/           (本地用户访问目录)

5、重启ftp进程   #service vsftpd restart

启动和关闭分别把restart改为start/stop即可.
如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.

注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。ftp服务器就可以使用了。

最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:

(1)找到/etc/rc.local文件

(2)打开该文件,在最后一行添加:service vsftpd start

(3)保存,退出


这样就可以完成了一个简单的匿名FTP的搭建。你可以通过访问ftp://yourip来进行,不过这个FTP没有任何权限。

匿名用户登录,不需要输入用户名

windows doc 下登陆成功:


******************************************************************************************
******************************************************************************************

与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf
vsftpd服务器的根目录,即FTP服务器的主目录:/var/ftp/pub
如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了

linux中vsftp修改默认路径:

如果是默认安装vsftpd的话,以下是一些文件的位置约定:
/usr/sbin/vsftpd ---- VSFTPD的主程序
/etc/rc.d/init.d/vsftpd ---- 启动脚本
/etc/vsftpd/vsftpd.conf ---- 主配置文件
/etc/pam.d/vsftpd ---- PAM认证文件
/etc/vsftpd.ftpusers ---- 禁止使用VSFTPD的用户列表文件
/etc/vsftpd.user_list ---- 禁止或允许使用VSFTPD的用户列表文件
/var/ftp ---- 匿名用户主目录
/var/ftp/pub ---- 匿名用户的下载目录如果要更改默认下载目录,修改/etc/vsftpd/vsftpd.conf,加入如下三行:
local_root=/                #表示使用本地用户登录到ftp时的默认目录              
chroot_local_user=YES
anon_root=/                 #表示匿名用户登录到ftp时的默认目录,例如:anon_root=/usr/local/apache/htdocs/anon             上面的chroot_list_file是设定锁定登陆用户在其home目录的列表,要在chroot_list_enable=YES情况下才生效。另外,如luo_rc所述,最好不要设置默认目录为/,使用建议使用mount --bind来挂载需要的目录。最后重启服务:   service  vsftpd restart

******************************************************************************************
******************************************************************************************

虚拟账户

1.建立虚拟用户口令库文件

vi logins.txt     //文件名随意

文件内容:  (这些用户在linux中不需要存在,虚拟的)

user1
passwd1
user2
passwd2
.....
.....

2.生成vsftpd的认证文件

db_load -T -t hash -f ./logins.txt /etc/vsftpd/ftp_login.db

将用户信息文件转换为数据库并用hash加密

说明 : db_load : 触发db4转换程序,需要安装db4_utils程序包
           -T          : 允许应用程序能够将文本文件转译载入数据库。  由于我们之后是将虚拟用户的信息(logins.txt)以文件方式存储在这个文件里,为了让vsftp应用程序能够通过文本来载入用户数据,必须要使用这个选项
           -t          : 子选项-t,追加在-T选项后,用来指定转译载入的数据库类型。 -t可以指定的数据类型有 Btree,Hash,Queue和Recon数据库。
           -f          : 参数后面接包含用户名和密码的文本文件,文件内容是: 奇数行用户名,偶数行密码。

添加虚拟用户口令数据库的读写权限

chmod 600 /etc/vsftpd/ftp_login.db

3.建立虚拟用户所需的PAM配置文件

cd /etc/pam.d  //进入到这个目录下
vi ftp.v       //配置文件名 ftp.v 可以任取,例如  ftp.uv,ftpv,ftpvirtual

配置文件内容

auth required /lib/security/pam_userdb.so  db=/etc/vsftpd/ftp_login              //指向的文件为第二步创建的vsftp认证数据库文件名
account required  /lib/security/pam_userdb.so db=/etc/vsftpd/ftp_login

4.建立虚拟用户所需要访问的目录,并设置相应的权限

useradd virtual            //用户名任意
chmod -R 755 /home/virtual //为要访问的目录设置权限,如果没有设置,虚拟用户虽然能登陆,但看不到里面的文件,虚拟用户为其它用户范

5.设置vsftpd.conf 配置文件

pam_service _name=ftp_login
guest_enable=YES
guest_username=virtual  //所有虚拟用户登陆的时候,都映射为virtual用户,访问该用户的目录

之后可以再 window通过doc界面 或者  FLASHFXP.EXE 软件,使用 user1,passwd1等虚拟用户访问 virtual用户的目录。

 ------------------------------------------------------------------------------------------------------------------

对不同的虚拟用户设置不同的权限    (没尝试的欲望)
1) 设置主配置文件
在vsftpd.conf文件中添加用户配置文件目录设置
user_config_dir=/etc/vsftpd/vsftpd_user_conf
2)  建立用户配置文件目录
# mkdir /etc/vsftpd/vsftpd_user_conf
3)  为虚拟用户建立单独的配置文件
a.用户配置文件名称与用户名相同
touch /etc/vsftpd/vsftpd_user_conf/zhangsan
touch /etc/vsftpd/vsftpd_user_conf/lisi
b.每个FTP虚拟用户都可以独立设置其权限
anon_world_readable_only=NO   //如果是NO,说明用户还可以下载等权限
anon_upload_enable=YES          //是否可以上传文件
anon_mkdir_write_enable=YES   //是否可以创建文件
anon_other_write_enable=YES   //是否可以修改文件包括删除

******************************************************************************************
******************************************************************************************

本地帐号
vsftpd 使用默认的vsftpd.conf 就能实现 本地账号的登陆。

******************************************************************************************
******************************************************************************************

二、vsftpd的配置文件说明:

   vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。(1)用户登录控制anonymous_enable=YES,允许匿名用户登录。no_anon_password=YES,匿名用户登录时不需要输入密码。local_enable=YES,允许本地用户登录。deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。banned_email_file=/etc/vsftpd.banned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpd.banned_emails)。(2)用户权限控制write_enable=YES,开启全局上传权限。local_umask=022,本地用户的上传文件的umask设为022(系统默认是077,一般都可以改为022)。anon_upload_enable=YES,允许匿名用户具有上传权限,很明显,必须启用write_enable=YES,才可以使用此项。同时我们还必须建立一个允许ftp用户可以读写的目录(前面说过,ftp是匿名用户的映射用户账号)。anon_mkdir_write_enable=YES,允许匿名用户有创建目录的权利。chown_uploads=YES,启用此项,匿名上传文件的属主用户将改为别的用户账户,注意,这里建议不要指定root账号为匿名上传文件的属主用户!chown_username=whoever,当启用chown_uploads=YES时,所指定的属主用户账号,此处的whoever自然要用合适的用户账号来代替。chroot_list_enable=YES,可以用一个列表限定哪些本地用户只能在自己目录下活动,如果chroot_local_user=YES,那么这个列表里指定的用户是不受限制的。chroot_list_file=/etc/vsftpd.chroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpd.chroot_list)。nopriv_user=ftpsecure,指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户。这是vsftpd系统推荐选项。async_abor_enable=YES,强烈建议不要启用该选项,否则将可能导致出错!ascii_upload_enable=YES;ascii_download_enable=YES,默认情况下服务器会假装接受ASCⅡ模式请求但实际上是忽略这样的请求,启用上述的两个选项可以让服务器真正实现ASCⅡ模式的传输。注意:启用ascii_download_enable选项会让恶意远程用户们在ASCⅡ模式下用“SIZE/big/file”这样的指令大量消耗FTP服务器的I/O资源。这些ASCⅡ模式的设置选项分成上传和下载两个,这样我们就可以允许ASCⅡ模式的上传(可以防止上传脚本等恶意文件而导致崩溃),而不会遭受拒绝服务攻击的危险。(3)用户连接和超时选项idle_session_timeout=600,可以设定默认的空闲超时时间,用户超过这段时间不动作将被服务器踢出。data_connection_timeout=120,设定默认的数据连接超时时间。(4)服务器日志和欢迎信息dirmessage_enable=YES,允许为目录配置显示信息,显示每个目录下面的message_file文件的内容。ftpd_banner=Welcome to blah FTP service,可以自定义FTP用户登录到服务器所看到的欢迎信息。xferlog_enable=YES,启用记录上传/下载活动日志功能。xferlog_file=/var/log/vsftpd.log,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpd.log。anonymous_enable=YES 允许匿名登录local_enable=YES 允许本地用户登录write_enable=YES 开放本地用户写权限local_umask=022 设置本地用户生成文件的掩码为022#anon_upload_enable=YES 此项设置允许匿名用户上传文件#anon_mkdir_write_enable=YES 开启匿名用户的写和创建目录的权限dirmessage_enable=YES 当切换到目录时,显示该目录下的.message隐藏文件的内容xferlog_enable=YES 激活上传和下载日志connect_from_port_20=YES 启用FTP数据端口的连接请求#chown_uploads=YES 是否具有上传权限. 用户由chown_username参数指定。#chown_username=whoever 指定拥有上传文件权限的用户。此参数与chown_uploads联用。#xferlog_file=/var/log/vsftpd.logxferlog_std_format=YES 使用标准的ftpd xferlog日志格式#idle_session_timeout=600 此设置将在用户会话空闲10分钟后被中断#data_connection_timeout=120 将在数据连接空闲2分钟后被中断#ascii_upload_enable=YES 启用上传的ASCII传输方式#ascii_download_enable=YES 启用下载的ASCII传输方式#ftpd_banner=Welcome to blah FTP service 设置用户连接服务器后显示消息#deny_email_enable=NO 此参数默认值为NO。当值为YES时,拒绝使用banned_email_file参数指定文件中所列出的e-mail地址用户登录。#banned_email_file=/etc/vsftpd.banned_emails 指定包含拒绝的e-mail地址的文件.#chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录#chroot_list_file=/etc/vsftpd.chroot_list#ls_recurse_enable=YESpam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pam.d/userlist_enable=YES 此项配置/etc/vsftpd.user_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpd.user_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpd.user_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。listen=YES 指明VSFTPD以独立运行方式启动tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES 

******************************************************************************************
******************************************************************************************

其它文献:

RedHat9-vsftp配置大全 http://doc.linuxpk.com/4231.html

转载于:https://www.cnblogs.com/zhiqixue/archive/2012/12/04/2800803.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548216.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

std::optional

c17之后引入optional&#xff0c;其实就是把boost库里面实现机制引入进来.作用:良好地处理构造开销高昂的对象&#xff0c;并更加可读.有点像指针的用法.个人认为&#xff0c;没啥鸟用&#xff0c;和用指针没啥区别 例子: #include <optional> #include <vector>…

vector删除元素

下面来感受下c11之后的魔力: #include <iostream> #include <vector> #include <algorithm> int main() { std::vector<int>vec{ 1,2,3,4,5 }; //vec.erase( //std::remove_if(vec.begin(), vec.end(), [](int value){return value 0;}))…

[置顶] 任务三 主题、样式

【知识点】 Web设计的核心思想 添加主题 添加样式表 窗体文件中应用主题 【操作步骤】 一、右击网站Web→添加ASP.NET文件夹→主题&#xff1b;添加主题文件夹 二、重命名主题文件夹名称为Default 三、右击主题文件夹Default→添加新项→样式表&#xff0c;添加样式表…

【FPGA】Verilog 实践:优先级编码器 | Priority encoder

0x00 优先级编码器&#xff08;Priority encoder&#xff09; "能将多个二进制输入压缩成更少数目输出的电路或算法的编码器" 优先级编码器是一种编码器&#xff0c;它考虑了两个或更多输入位同时变为 1 但没有收到输入的情况。当输入进来时&#xff0c;优先级编码…

智能指针分配动态数组

auto ptr_arr std::make_shared<int[]>(); std::unique_ptr<int[]> up1(new int[10]()); //C14以后语法 auto up2 std::make_unique<A[]>(3); auto sp3(std::shared_ptr<A[]>(new A[3])); //#include <boost/make_shared.hpp> auto b_ptr_…

php基础语法知识笔记(一)

共享一份我自己学习php基础语法知识的笔记&#xff0c;这是第一弹&#xff0c;明天共享第二弹。 1.判断php短标记<??>是否适用&#xff0c;查看php配置文件php.ini中的"short_open_tag On"2.官方的标记<?php?> &#xff0c; <script language&q…

php __FILE__和$_SERVER['SCRIPT_FILENAME']区别

假设有a.php和b.php2个文件&#xff0c;分别位于E:/wamp/www/Text/ a.php echo $_SERVER[SCRIPT_FILENAME].<br/>; echo __FILE__; 执行a.php 得到的是 E:/wamp/www/Text/a.php ($_SERVER[SCRIPT_FILENAME]) E:\wamp\www\Text\a.php (__FILE__) b.php require a.…

boost asio io_context 没任务不退出

boost::asio::io_context ioc; auto work(boost::asio::make_work_guard(ioc)); //没用任务时&#xff0c;run 不退出

git中reset与revert的区别

1:最本质的区别:reset 回滚后&#xff0c;不会生成任何commit点(也就是提交哈希值),而revert回滚后回生成commit点 2:reset 命令参数包括&#xff1a;soft hard mixed 三个回滚方式

论文总结2

基于内容的网页特征提取 2001 使用专业网络爬虫获取网页&#xff0c;巨量网页数据保存在分布式的LDAP (轻量级目录服务协议)目录服务器中, 通过轻量级目录服务协议维护管理。分词词典通过提取过滤很多相关领域网页生成&#xff0c;手动更新。特征提取&#xff1a;正文分词然后计…

安裝jpeg-6b png error错误解决方法

默认安裝jpeg-6b shell> wget ftp://ftp.uu.net/graphics/jpeg/jpegsrc.v6b.tar.gz tar zxvf jpegsrc.v6b.tar.gz cd jpeg-6b ./configure –-prefix/usr/local/jpeg6 –enable-shared –enable-static make make install 指定安装目录方式安装jpeg-6b 如果你选择默认安装…

c++11特性move和forward区别

1:move属于强转,左值变右值 2:forward左值变左值&#xff0c;右值变右值(不是强转)

碎语

悠悠大道&#xff0c;莫衷一是。也许&#xff0c;看到的不是真相&#xff0c;听到的&#xff0c;反而是实言。匆匆的人流&#xff0c;滚滚的气息。得不到的一直在强求&#xff0c;在身边的故意不理睬。千篇一律的重复着早中晚&#xff0c;行尸走肉地上演着你我他。了却不断的红…

linux 进程重启脚本

pid(ps aux | grep 进程名 | grep -v grep | awk {print $2}) if [ ! -n "$pid" ] then echo 进程名 process not found. else kill -9 $pid echo 进程名 process[$pid] be killed. fi chmod 777 ./进程名 rm -rf *.log nohup ./进程名 > log.log 2>…

MongoDB与其他数据库的对比

本文转载自&#xff1a;http://book.2cto.com/201211/7897.html 市面上的数据库数量成爆炸式增长&#xff0c;要在它们之间进行权衡是很困难的。幸运的是&#xff0c;它们之中的大多数数据库都能归在几个分类里。本节中&#xff0c;我会描述简单及复杂的键值存储、关系型数据库…

【学习生活杂谈】学习记录

hadoop学习汇总&#xff1a;Hadoop官方的中文文档http://hadoop.apache.org/common/docsHadoop学习资料 -- 这里面总结了很多的东西&#xff0c;值得一一细看http://cloud21.javaeye.com/blog/607175关于Hadoop的两本书 -- 有电子书下载http://caibinbupt.javaeye.com/blog/418…

hadoop和kerberos的整合总结

由于手上负责的hadoop集群需要对公司外部提供服务&#xff0c;所有会有多个部门访问我们的hadoop集群&#xff0c;这个就涉及到了hadoop的安全性。 而hadoop的安全性是很弱的&#xff0c;只提供类似linux文件系统的帐户权限验证&#xff0c;而且可以通过简单的手段冒充用户名&a…

linux系统用户迁移

今天登陆上来发现好久都没有写博客了。 刚刚做了一个linux用户迁移&#xff0c;记录下&#xff0c;以后用到的话&#xff0c;查起来方便。希望对大家有帮助。 环境&#xff1a;我们原先的一台服务器由于过保所以替换新的服务器&#xff0c;但是由于用户数较多&#xff0c;如果一…

vm虚拟远程部署windows驱动

注意打印机是用com1端口&#xff0c;应该提前删除 bcdedit /debug on bcdedit /dbgsettings serial debugport:1 baudrate:115200 bcdedit /dbgsettings 以下两条是配置调式环境系统用 bcdedit /set testsigning on bcdedit /set loadoptions DDISABLE_INTEGRITY_CHECKS 在…

Android:SharedPreferences详解+示例

为什么80%的码农都做不了架构师&#xff1f;>>> 一、简介SharedPreferences是一种轻型的数据存储方式&#xff0c;它的本质是基于XML文件存储key-value键值对数据&#xff0c;通常用来存储一些简单的配置信息。 二、存储位置 在/data/data/<包名>/shared_pre…