Linux下的 FTP

 

1.安装vsftpd

yum install vsftpd

2.启动/重启/关闭vsftpd服务器
[root@localhost ftp]# /sbin/service vsftpd restart
Shutting down vsftpd: [ OK ]
Starting vsftpd for vsftpd: [ OK ]
 
OK表示重启成功了.
启动和关闭分别把restart改为start/stop即可.
如果是源码安装的,到安装文件夹下找到start.sh和shutdown.sh文件,执行它们就可以了.

3.与vsftpd服务器有关的文件和文件夹
vsftpd服务器的配置文件的是: /etc/vsftpd/vsftpd.conf

vsftpd服务器的根目录,即FTP服务器的主目录:
[root@localhost ftp]# more /etc/passwd|grep ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
 
这样你就能看到FTP的服务器的目录在/var/ftp处
如果你想修改服务器目录的路径,那么你只要修改/var/ftp到别处就行了

4.添加FTP本地用户
有的FTP服务器需要用户名和密码才能登录,就是因为设置了FTP用户和权限.
FTP用户一般是不能登录系统的,只能进入FTP服务器自己的目录中,这是为了安全.这样的用户就叫做虚拟用户了.实际上并不是真正的虚拟用户,只是不能登录SHELL了而已,没能力登录系统.

/usr/sbin/adduser -d /opt/ftp -g ftp -s /sbin/nologin ftpuser

这个命令的意思是:
使用命令(adduser)添加ftpuser用户,不能登录系统(-s /sbin/nologin),自己的文件夹在(-d /opt/ftp)),属于组ftp(-g ftp)
然后你需要为它设置密码 passwd ftp
这样就添加了一个FTP用户了.下面的示例可以帮助你进入FTP服务器了.

要保证自己能读写自己的目录,就要在配置文件vsftpd.conf里设置一下就可以读写了.
local_enable=yes
write_enable=yes
local_umask=022

5.匿名上传下载
修改配置文件即可vsftpd.conf,确定有以下几行,没有自己添加进去就可以了.
anonymous_enable=yes
anon_upload_enable=yes
anon_mkdir_write_enable=yes
anon_umask=022

然后你可以新建一个文件夹,修改它的权限为完全开放,任何用户就可以登录这个文件夹,并上传下载文件:
mkdir /var/ftp/guest
chmod 777 /var/ftp/guest

6.定制进入FTP服务器的欢迎信息
在vsftpd.conf文件中设置:
dirmessage_enable=yes
然后进入用户目录建立一个.message文件,输入欢迎信息即可。

7.实现虚拟路径
将某个目录挂载到FTP服务器下供用户使用,这就叫做虚拟路径.
比如将gxl用户的目录挂载到FTP服务器中,供FTP服务器的用户使用,使用如下命令即可:
[root@localhost opt]# mount –bind /home/gxl /var/ftp/pub #使用挂载命令
[root@localhost opt]# ls /var/ftp/pub
LumaQQ Screenshot.png 桌面

8.打开vsFTPd的日志功能
添加下面一行到vsftpd.conf文件中,一般情况下该文件中有这一行,只要把前面的注释符号#去掉即可,没有的话就添加,或者修改:
xferlog_file=/var/log/vsftpd.log

9.限制链接数,以及每个IP最大的链接数
修改配置文件中,例如vsftp最大支持链接数100个,每个IP能支持5个链接:
max_client=100
max_per=5

10.限制传输速度
修改配置文件中,例如让匿名用户和vsftd上的用户(即虚拟用户)都以80KB=1024*80=81920的速度下载
anon_max_rate=81920
local_max_rate=81920

11.将用户(一般指虚拟用户)限制在自家目录
修改配置文件中,这样用户就只能访问自己家的目录了:
chroot_local_user=yes
如果只想某些用户仅能访问自己的目录,其它用户不做这个限制,那么就需要在chroot_list文件(此文件一般是在/etc/vsftpd/中)中添加此用户.
编辑此文件,比如将test用户添加到此文件中,那么将其写入即可.一般的话,一个用户占一行.
[root@localhost vsftpd]# cat chroot_list
ftpuser

12.绑定某个IP到vsFTPd
有时候要限制某些IP访问服务器,只允许某些IP访问,例如只允许192.168.0.33访问这个FTP,同样修改配置文件:
listen_address=192.168.0.33

 

配置vsftpd.conf
                        
 anonymous_enable=NO            #禁止匿名
                         local_enable=YES                       #允许本地登录 
                   write_enable=YES                        #允许写,如需上传,则必须 
                   local_umask=027                        #将上传文件的权限设置为:777-local_umask 
                   anon_upload_enable=YES          # 允许虚拟用户和匿名用户上传
                   anon_other_write_enable=YES #允许虚拟用户和匿名用户修改文件名和删除文件
                   dirmessage_enable=YES          
                   xferlog_enable=YES                      #打开日志记录
                   connect_from_port_20=YES
                   xferlog_file=/var/log/vsftpd.log     #日志存放位置 
                   xferlog_std_format=YES              #标准日志格式 
                   idle_session_timeout=600        #空闲连接超时 
                   data_connection_timeout=120
                   ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
                   guest_enable=yes                       #允许虚拟用户
                   guest_username=vsftpdguest #虚拟用户使用的系统账号 
                   virtual_use_local_privs=YES     #虚拟用户拥有本地系统权限

                   chroot_local_user=NO              
                   chroot_list_enable=YES 

                     #以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用                            
                   chroot_local_user=YES                               

                   listen=yes                #监听/被动模式 
                   listen_port=21        #监听端口

                   chroot_list_file=/etc/vsftpd/vsftpd.chroot_list        #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中 
                   
user_config_dir=/etc/vsftpd/vsftpd_user_conf    #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中

虚拟用户其他设置

      在/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
      在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
      写入: 
local_root = /var/FTP/子目录名
      然后在/var/FTP下创建一个对应的目录即可

 

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

CentOS下开通Ftp和Telnet服务

在安装好CentOS以后,需要设置Ftp和Telnet服务文件,才能启动Ftp和Telnet服务,可以通过远程控制进行开启。

1.1、进入终端命令模式,用root用户登录;

1.2、开启ftp服务。

  cd /etc/xinetd.d ,编辑ftp服务的配置文件gssftp:

  vi gssftp ,将 修改两项内容:

  (1)server_args = -l –a 去掉-a 改为server_args = -l

  (2)disable=yes改为disable=no

  (3)保存退出。

1.3、开启telnet服务

 
cd /etc/xinetd.d ,察看telnet服务的配置文件krb5-telnet的设置:$ {! b7 r0 A8 d. z 

   开启telnet服务设置

   vi krb5-telnet ,

  (1)将disable=yes,改为disable=no,保存退出。

1.4、激活服务:

  telnet /ftp 是挂在 xinetd 底下的,所以自然只要重新激活 xinetd 就能够将 xinetd 里头的设定重新读进来,所以刚刚设定的telnet /ftp自然也就可以被激活。

  激活目录和命令:

  cd /etc/rc.d/init.d/

  service xinetd restart

  有时会提示命令不存在,需要加上命令的路径

  [root@localhost init.d]# service xinetd resart

  bash: service: command not found

  [root@localhost init.d]# /sbin/service xinetd restart

    若提示xinetd: 未被识别的服务,则说明/etc/rc.d/init.d下无xinetd包

  [root@localhost init.d]# yum -y install xinetd*   //下载xinetd包

    [root@localhost init.d]# service xinetd resart    //重新启动FTP、Telnet服务

    这样既可ftp登陆到服务器


增加用户

[root@srsman]adduser -d /opt/btgup -g ftp -s /sbin/nologin btgup

[ root@srsman]passwd btgup
Changing password for user btgup.
New password:
Retype new password:

passwd: all authentication tokens updated successfully.



这样就为系统增加了一个名为srsman,目录指向为/opt/srsman的ftp用户

Tips:很多朋友在增加用户后ftp上服务器的时候总是提示

ftp服务器连接失败,错误提示:


500 OOPS: cannot change directory:/home/*******
500 OOPS: child died

当你看到以上提示时,试着在输入以下命令解决


setsebool -P ftpd_disable_trans 1
service vsftpd restart

第一行中的-P参数是为了以后不需要每次开机都输入这个命令

//===================================================================
修改vsftpd.conf文件:


user_config_dir=/etc/vsftpd/user_config_dir
#并在这个文件夹下面添加用户名的文件
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

修改文件夹的读写权限:


chown ftp /var/ftp/upload
chmod 777 /var/ftp/upload

这样就为系统增加了一个名为srsman,目录指向为/opt/srsman的ftp用户

Tips:很多朋友在增加用户后ftp上服务器的时候总是提示

ftp服务器连接失败,错误提示:


500 OOPS: cannot change directory:/home/*******
500 OOPS: child died

当你看到以上提示时,试着在输入以下命令解决


setsebool -P ftpd_disable_trans 1
service vsftpd restart

第一行中的-P参数是为了以后不需要每次开机都输入这个命令

//===================================================================
修改vsftpd.conf文件:


user_config_dir=/etc/vsftpd/user_config_dir
#并在这个文件夹下面添加用户名的文件
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

修改文件夹的读写权限:


chown ftp /var/ftp/upload
chmod 777 /var/ftp/upload

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

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

相关文章

python入门23 pymssql模块(python连接sql server增删改数据 )

增删改数据必须connect.commit()才会生效 回滚函数 connect.rollback() 连接数据库 dinghanhua sql server增删改 import pymssqlserver 192.168.1.1 user user password 111111 database testdbconnect pymssql.connect(server server,user user,passwordpassword,da…

每个人都应该使用的Python 3中被忽略的3个功能

重点 (Top highlight)Python 3 has been around for a while now, and most developers — especially those picking up programming for the first time — are already using it. But while plenty of new features came out with Python 3, it seems like a lot of them ar…

iframe自适应高度

为什么需要使用iframe自适应高度呢?其实就是为了美观,要不然iframe和窗口长短大小不一,看起来总是不那么舒服,特别是对于我们这些编程的来说,如鲠在喉的感觉。 首先设置样式 body{margin:0; padding:0;} 如果不设置bod…

.Net转Java自学之路—SpringMVC框架篇八(RESTful支持)

RESTful架构,REST即Representational State Transfer。表现层状态转换,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以得到越来越多网站的采用。 RESTful其实就是一个开发理念,是对http的很…

冲刺第七天

今天任务进行情况:今天我们将我们的游戏导到界面形成可用的应用程序,并且进行调试与运行,让同学试玩,发现了困难并加以改正。 遇到的困难及解决方法: 运行时发现游戏界面中UI的button和image的位置会随分辨率的不同而发…

数据探查_数据科学家,开始使用探查器

数据探查Data scientists often need to write a lot of complex, slow, CPU- and I/O-heavy code — whether you’re working with large matrices, millions of rows of data, reading in data files, or web-scraping.数据科学家经常需要编写许多复杂,缓慢&…

Node.js Streams:你需要知道的一切

Node.js Streams:你需要知道的一切 图像来源 Node.js流以难以使用而闻名,甚至更难理解。好吧,我有个好消息 - 不再是这样了。 多年来,开发人员在那里创建了许多软件包,其唯一目的是简化流程。但在本文中,我…

oracle表分区

1.表空间:是一个或多个数据文件的集合,主要存放的是表,所有的数据对象都存放在指定的表空间中;一个数据文件只能属于一个表空间,一个数据库空间由若干个表空间组成,其中包括:a.系统表空间:10g以前,默认系统表空间是System,10g包括10g以后,默认系统表空间是User,存放数据字典和视…

oracle异机恢复 open resetlogs 报:ORA-00392

参考文档:ALTER DATABASE OPEN RESETLOGS fails with ORA-00392 (Doc ID 1352133.1) 打开一个克隆数据库报以下错误: SQL> alter database open resetlogs; alter database open resetlogs * ERROR at line 1: ORA-00392: log 1 of thread 1 is being…

从ncbi下载数据_如何从NCBI下载所有细菌组件

从ncbi下载数据One of the most important steps in genome analysis is gathering the data required for downstream research. This sometimes requires us to have the assembled reference genomes (mostly bacterial) so we can verify the classifiers trained or bins …

shell之引号嵌套引号大全

万恶的引号 这个能看懂你就出师了! 转载于:https://www.cnblogs.com/theodoric008/p/10000480.html

oracle表分区详解

oracle表分区详解 从以下几个方面来整理关于分区表的概念及操作: 表空间及分区表的概念表分区的具体作用表分区的优缺点表分区的几种类型及操作方法对表分区的维护性操作 1.表空间及分区表的概念 表空间: 是一个或多个数据文件的集合,所有的数据对象都存…

线性插值插值_揭秘插值搜索

线性插值插值搜索算法指南 (Searching Algorithm Guide) Prior to this article, I have written about Binary Search. Check it out if you haven’t seen it. In this article, we will be discussing Interpolation Search, which is an improvement of Binary Search when…

其他命令

keys *这个可以全部的值del name 这个可以删除某个127.0.0.1:6379> del s_set(integer) 1127.0.0.1:6379> keys z*(匹配)1) "z_set2"2) "z_set"127.0.0.1:6379> exists sex(integer) 0 127.0.0.1:6379> get a"3232…

建按月日自增分区表

一、建按月自增分区表: 1.1建表SQL> create table month_interval_partition_table (id number,time_col date) partition by range(time_col)2 interval (numtoyminterval(1,month))3 (4 partition p_month_1 values less than (to_date(2014-01-01,yyyy-mm…

#1123-JSP隐含对象

JSP 隐含对象 JSP隐含对象是JSP容器为每个页面提供的Java对象,开发者可以直接使用它们而不用显式声明。JSP隐含对象也被称为预定义变量。 JSP所支持的九大隐含对象: 对象,描述 request,HttpServletRequest类的实例 response&#…

按照时间,每天分区;按照数字,200000一个分区

按照时间,每天分区 create table test_p(id number,createtime date) partition by range(createtime) interval(numtodsinterval(1,day)) store in (users) ( partition test_p_p1 values less than(to_date(20140110,yyyymmdd)) ); create index index_test_p_id …

如果您不将Docker用于数据科学项目,那么您将生活在1985年

重点 (Top highlight)One of the hardest problems that new programmers face is understanding the concept of an ‘environment’. An environment is what you could say, the system that you code within. In principal it sounds easy, but later on in your career yo…

jmeter对oracle压力测试

下载Oracle的jdbc数据库驱动包,注意Oracle数据库的版本,这里使用的是:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production; 一般数据库的驱动包文件在安装路径下:D:\oracle\product\10.2.…

集合里面的 E是泛型 暂且认为是object

集合里面的 E是泛型 暂且认为是object转载于:https://www.cnblogs.com/classmethond/p/10011374.html