如何在linux 服务器上做FTP。请指教。

如何在linux 服务器上做FTP。请指教。,第1张

linux 下FTP安装及配置
一、FTP的安装
1、检测是否安装了FTP :[root@localhost ~]# rpm -q vsftpd
如果安装了会显示版本信息:
[root@localhost ~]# vsftpd-205-16el5_51
否则显示:[root@localhost ~]# package vsftpd is not installed
2、如果没安装FTP,运行yum install vsftpd命令
具体的细节如下:(如果无法更新,你先配置能访问互联网,我有文档叫 CentOS 在 VMware下,如何联网到Internet的解决办法 可以解决无法上网的问题)
[root@localhost ~]# yum install vsftpd
[root@localhost ~]#
 3、完成ftp安装后,将 /etc/vsftpd/user_list文件和/etc/vsftpd/ftpusers文件中的root这一行注释掉
# root
4、执行以下命令
# setsebool -P ftpd_disable_trans=1
修改/etc/vsftpd/vsftpdconf,在最后一行处添加local_root=/
5、重启ftp进程 #service vsftpd restart
注:每次修改过ftp相关的配置文件,都需要重启ftp进程来生效。
ftp服务器就可以使用了。

二、vsftpd的配置文件说明:
vsftpdftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。
vsftpduser_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd conf配置文件里启用userlist_enable=NO选项时才允许访问。
vsftpdconf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。
(1)用户登录控制
anonymous_enable=YES,允许匿名用户登录。
no_anon_password=YES,匿名用户登录时不需要输入密码。
local_enable=YES,允许本地用户登录。
deny_email_enable=YES,可以创建一个文件保存某些匿名电子邮件的黑名单,以防止这些人使用Dos攻击。
banned_email_file=/etc/vsftpdbanned_emails,当启用deny_email_enable功能时,所需的电子邮件黑名单保存路径(默认为/etc/vsftpdbanned_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/vsftpdchroot_list,如果chroot_local_user=YES,则指定该列表(chroot_local_user)的保存路径(默认是/etc/vsftpdchroot_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/vsftpdlog,可以自定义日志文件的保存路径和文件名,默认是/var/log/vsftpdlog。
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/vsftpdlog
xferlog_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/vsftpdbanned_emails 指定包含拒绝的e-mail地址的文件
#chroot_list_enable=YES 设置本地用户登录后不能切换到自家目录以外的别的目录
#chroot_list_file=/etc/vsftpdchroot_list
#ls_recurse_enable=YES
pam_service_name=vsftpd 设置PAM认证服务的配置文件名称,该文件存放在/etc/pamd/
userlist_enable=YES 此项配置/etc/vsftpduser_list中指定的用户也不能访问服务器,若添加userlist_deny=No,则仅仅/etc/vsftpduser_list文件中的用户可以访问,其他用户都不可以访问服务器。如过userlist_enable=NO,userlist_deny=YES,则指定使文件/etc/vsftpduser_list中指定的用户不可以访问服务器,其他本地用户可以访问服务器。
listen=YES 指明VSFTPD以独立运行方式启动
tcp_wrappers=YES 在VSFTPD中使用TCP_Wrappers远程访问控制机制,默认值为YES
三、举例建立一个名为test的账户并进行配置
根据实际情况对FTP进行配置后,下面举例介绍建立一个FTP账户并进行简单的配置:
1、创建一个账号为test的账户:
#mkdir /tmp/test //首先创建好目录
#adduser -d /tmp/test -g ftp -s /sbin/nologin test //-s /sbin/nologin是让其不能登陆系统,-d 是指定用户目录为/opt/srsman ,即该账户只能登陆ftp,却不能用做登陆系统用。
#passwd test
Changing password for user beinan//接下来会出现让你设置新的密码
New password:
Retype new password:
passwd: all authentication tokens updated successfully
创建账户成功!
2、限制用户目录,不得改变目录到上级
修改/etc/vsftpd/vsftpdconf
将这两行
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpdchroot_list
注释去掉
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
新增一个文件: /etc/vsftpd/chroot_list
内容写需要限制的用户名:
test
重新启动vsftpd
# service vsftpd restart
3、最后为了防止服务器由于断电、重启等现象发生,导致ftp进程在开机后未启动,将其添加到开机启动文件中:
(1)找到/etc/rclocal文件
(2)打开该文件,在最后一行添加:service vsftpd start
(3)保存,退出
4、通过在“我的电脑”中输入ftp://19216817930(填该ftp服务器ip地址)进入ftp服务器,输入设置好的账户登陆即可。
5、CMD-》ftp 19216812
Cd /soft
Put c:\ssslog //这样可以成功上传, VSFTP不支持绝对目录上传,只能够到当前目录下上传

在某一温度下测定橡胶在硫化过程中某一物理性能与硫化时间关系的曲线。一般情况下,用硫化胶的拉伸强度、扯断伸长率、定伸应力和硬度等分别对硫化时间作图,就可以得到硫化曲线。目前通常用硫化仪直接绘出硫化曲线,由硫化曲线可以观察胶料硫化的整个过程,按橡胶交联情况的不同可分为:硫化诱导期、热硫化阶段、平坦硫化阶段和过硫阶段。从硫化曲线可以求得胶料焦烧性能、硫化速率、最佳硫化时间、硫化平坦性以及抗过硫返原性能等。
硫化曲线上的参数、硫化的各个阶段及其它们之间的关系可以在硫化温度下,开始转矩下降,也就是粘度下降,到最低点后又开始上升,这表示硫化的开始,随着硫化的进行,转矩不断上升并达到最大值。
ML(最小转矩);
MH(最大转矩);
TH(理论正硫化时间);
M10:ML十(MH—ML)X 10%,
T10(焦烧时间);
M90:ML十(MH—ML)X 90%,
T9O(工艺正硫化时间)。
 流变图曲线上的各硫化阶段:诱导期,热硫化期,正硫化期,过硫化期。
在硫化反应开始前,胶料必须有充分的迟延作用时间以便进行混炼、压延、压出、成型及模压时充满模型。一旦硫化开始,反应要迅速。因此,硫化诱导期对橡胶加工生产安全至关重要.是生产加工过程的一个基本参数。在热硫化阶段,橡胶与硫磺的交联反应迅速进行,曲线的斜率即硫化速率与交联键生成速度基本一致,并符合一级反应方程式。从硫化时间对交联密度关系可得下列方程式,
式中 Vut——硫化时间为,时的交联密度;
K ——交联反应速度常数;
t ——硫化时间;
ti ——硫化诱导时间;
Vu ——交联密度;
Vu∞——最大交联密度。
按照式(2—1)将Vut。对硫化时间进行标绘.可得到流变图所示的交联反应的动力学曲线,它与流变图的热硫化段的硫化曲线相同。从流变图曲线可见,交联反应自ti开始,交联密度近似直线增加,最后达最大值。从理论上,胶料达到最大交联密度时的硫化状态称为正硫化,它与流变图中的对应点是硫化仪中的最大转矩MH。所以正硫化时间是指胶料达到最大交联密度时所需要时间。显然,由交联密度来确定正硫化是比较合理的,它是现代各种硫化测量技术的理论基础。
(四)理想的橡胶硫化曲线
较为理想的橡胶硫化曲线应满足下列条件:
(1)硫化诱导期要足够长,充分保证生产加工的安全性;
(2)硫化速度要快,提高生产效率.降低能耗;
(3)硫化平坦期要长。
要实现上述条件,必须正确选择硫化条件和硫化体系。目首比较理想的是迟效性的次磺酰胺类促进剂的硫化体系。

1、建立虚拟帐号和用户口令文件
A vi loginstxt 口令库文件中奇数行为用户名、偶数行设置密码
B 生成vsftpd的认证文件
命令 db_load -T -t hash -f /loginstxt /etc/vsftpd/vsftpd_logindb
C 建立虚拟用户所需的PAM配置文件。
手工建立vsftpdvu 文件
重要uth required /lib/security/pam_userdbso db=/etc/vsftpd/vsftpd_login
重要account required /lib/security/pam_userdbso db=/etc/vsftpd/vsftpd_login
建立所有FTP虚拟用户帐号使用的系统用户帐号,并设置该帐号宿主目录的权限。
# useradd -d /home/ftpsite virtual
# chmod 700 /home/ftpsite
f,设置vsftpdconf配置文件。
在配置文件中添加虚拟用户的配置内容。
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpdvu
重新启动vsftpd服务程序。
对虚拟用户设置不同的权限
设置主配置文件。
在vsftpdconf文件中添加用户配置文件目录设置。
user_config_dir=/etc/vsftpd_user_conf
建立用户配置文件目录。
使用mkdir命令建立用户配置文件目录。
# mkdir /etc/vsftpd_user_conf
为虚拟用户建立单独的配置文件。
用户配置文件名称与用户名相同。
/etc/vsftpd_user_conf/mike
/etc/vsftpd_user_conf/john
里面的内容如下:
anon_world_readable_only=NO 表示用户可以浏览FTP目录和下载文件
anon_upload_enable=YES 表示用户可以上传文件
anon_mkdir_write_enable=YES 表示用户具有建立和删除目录的权限
anon_other_write_enable=YES 表示用户具有文件改名和删除文件的权限
没有的配置项默认按照vsftpdconf的配置内容
#virtual_use_local_privs 设置为 YES 时,虚拟用户使用与本地用户相同权限,设置为 NO 时,虚拟用户使用与匿名用户相同权限
virtual_use_local_privs=YES
#pam 认证文件名
pam_service_name=vsftpd
#将本地用户限制在家目录
chroot_local_user=YES

一:安装vsftpd
查看是否已经安装vsftpd
1rpm -qa | grep vsftpd
2#如果没有,就安装,并设置开机启动
3yum -y install vsftpd
4chkconfig vsftpd on
二:基于虚拟用户的配置
所谓虚拟用户就是没有使用真实的帐户,只是通过映射到真实帐户和设置权限的目的。虚拟用户不能登录CentOS系统。
修改配置文件
打开/etc/vsftpd/vsftpdconf,做如下配置
1anonymous_enable=NO #设定不允许匿名访问
2local_enable=YES #设定本地用户可以访问。注:如使用虚拟宿主用户,在该项目设定为NO的情况下所有虚拟用户将无法访问
3chroot_list_enable=YES #使用户不能离开主目录
4ascii_upload_enable=YES
5ascii_download_enable=YES #设定支持ASCII模式的上传和下载功能
6pam_service_name=vsftpd #PAM认证文件名。PAM将根据/etc/pamd/vsftpd进行认证
7以下这些是关于vsftpd虚拟用户支持的重要配置项,默认vsftpdconf中不包含这些设定项目,需要自己手动添加
8guest_enable=YES #设定启用虚拟用户功能
9guest_username=ftp #指定虚拟用户的宿主用户,CentOS中已经有内置的ftp用户了
10user_config_dir=/etc/vsftpd/vuser_conf #设定虚拟用户个人vsftp的CentOS FTP服务文件存放路径。存放虚拟用户个性的11CentOS FTP服务文件(配置文件名=虚拟用户名
进行认证
12chroot_list_file=/etc/vsftpd/vuser_passwdtxt
首先,安装Berkeley DB工具,很多人找不到db_load的问题就是没有安装这个包。
1yum install db4 db4-utils
然后,创建用户密码文本/etc/vsftpd/vuser_passwdtxt ,注意奇行是用户名,偶行是密码
1test
2123456
接着,生成虚拟用户认证的db文件
1db_load -T -t hash -f /etc/vsftpd/vuser_passwdtxt /etc/vsftpd/vuser_passwddb
随后,编辑认证文件/etc/pamd/vsftpd,全部注释掉原来语句,再增加以下两句:
1auth required pam_userdbso db=/etc/vsftpd/vuser_passwd
2account required pam_userdbso db=/etc/vsftpd/vuser_passwd
最后,创建虚拟用户配置文件
1mkdir /etc/vsftpd/vuser_conf/
2vi /etc/vsftpd/vuser_conf/test #文件名等于vuser_passwdtxt里面的账户名,否则下面设置无效
3内容如下
4local_root=/ftp/>

初次建立VU工程,可以按本节的说明,只完成常规设置。大多数设置可以在工程建立后进行修改,因此,新建工程时不一定完成所有设置,如果产生解析错误、编译错误或链接错误,再根据后面各节的说明,在工程属性中修改设置。
打开“新建工程向导”
在主工具栏单击,或在“工程”菜单单击“新建工程”,即可打开“新建VU工程向导”。
模板选择
一个项目可以建立任意数量的VU工程,建立项目的第一个VU工程时,先选择开发环境,再在右边的模板列表中,根据项目特性选择合适模板;VU工程建立后,自动保存为模板,并出现在“或选择现有项目”框内,建立第二个或更多的VU工程时,可选择先前的VU工程作为模板,通常只需设定不同的被测文件和外围文件。

 

   

导入数据
这一步是可选的。如果存在工程文件或makefile文件,可以从这些数据导入数据,导入数据后,除测试哪些文件可能需要修改,后续步骤可以全部直接点击“下一步”。

 

常规信息
设定VU工程的基本信息。建立项目的第一个VU工程时,通常只需选择“产品项目根目录”和填写“VU工程名称”,建立项目的第二个或更多的VU工程时,通常只需填写“VU工程名称”。
可将任务简写、模块名称或负责该模块的开发或测试人员的姓名,作为“VU工程名称”。

 

设定测试任务
点击复选框,将需测试的源文件设为T,不需测试但可能要使用的底层或关联源文件设为N,设为X的文件将被隔离,必要时自动打桩。以后可从工程菜单打开“工程属性”,重设源文件类别或指定新加入的源文件的类别。能够设为N的源文件不要设为X,即尽可能减少打桩。作为一种策略,以后可在代码菜单单击“屏蔽桩代码”,临时屏蔽桩代码,利用链接错误找出本应链接的库和本应链接的源文件,以避免不当打桩。
头文件默认不测试,如果需要测试的函数位于头文件中,可点击“头文件”按钮,选择要测试的头文件。

 

指定头文件搜索目录
在“库头文件目录”中添加用于引入静态或动态库的头文件目录,如产品开发环境的头文件目录、标准库或第三方库的头文件目录。
其他头文件目录添加到“常规头文件目录”中。
库头文件和常规头文件的区别是:当符号未定义时,前者不打桩(VU认为定义位于库文件中),后者打桩(VU认为定义未实现或被隔离)。
点击“详细分类”,可以设定每个头文件的类别:H为常规头文件,如果源文件不存在,自动生成桩;L为库头文件,表示源代码位于库中,不会生成桩,X为忽略的头文件。如果难以确定需要哪些头文件目录,可以先采用缺省设置,解析过程中未找到的头文件会自动记录,以后可在工程属性打开头文件页,点击“搜索”,搜索并选择需要的目录。

 

   

编译选项
常用的设置是预处理定义,要跟产品工程一致,可以通过查看产品工程setting,或makefile文件来获得。VU自动和成编译命令行,如有需要,也可以直接修改命令行。  

   

 

   

链接选项
指定库文件(如lib、a文件)的搜索路径,指定要链接的库或忽略的默认库。这些设置要跟产品工程一致,可以通过查看产品工程setting,或makefile文件来获得。VU自动和成链接命令行,如有需要,也可以直接修改命令行。  

 

 


高级选项
设定工程的高级属性,可以全部使用缺省,出现解析或编译错误时再从工程菜单打开“工程属性”进行修改。

 

点击“完成”,VU开始解析源代码、生成测试代码文件,然后自动编译。如果解析过程出现错误,必须依据提示解决,否则不会生成测试文件。请参考解析错误 、警告及处理。

在Internet上FTP(File Transfer Protocol,文件传输协议)扮 演着十分重要的角色。我们可以通过FTP与远程机器传输交换文件数 据,下载或上传最新的软件。基本的FTP服务器根据服务的对象可以分为两 种,一种是Unix(当然也包括Linux)系统基本的FTP服务器,使用者是服务器上合法的 用户;而另一种是匿名FTP服务器(Anonmous FTP Service),任何人只要使用anonmous或ftp帐号并提供电子邮件地址作为口令就可以使用FTP服务。
对于系统中合法的用户,其登录目录为他们的home目录;如果是匿名用户登录的话,登录后会到/home/ftp这个目录中,该除非我们在该目 录中存放下载文件,否则匿名FTP使用者将不能做任何事情。在本章,我们将详细地介绍FTP服务器的安装、配置以及服务 器的维护。
安装FTP服务器
在Linux的发行套件中都有FTP服务器的软件包wu-ftpd(Washington University FTP server),这是目前最流行的一种免费FTP服务器软件,目前绝大多数的FTP站点都是由wu-ftpd来架设的,而wu-ftp如此流行的原因是因 为它强大的功能,例如:
·可控制不同网域的机器对 FTP服务器的存取权限和访问时段。
·使用者在下载文件时,可自动对文件进 行压缩或解压缩工作。
·可以记录文件上传或下载的过程。
·可以限制最高访问人数,以维持系统的最佳运行效率。
·可显示相关的信息,以便用户了解当前的接收状态。
·可暂时关闭FTP服务器,以便系统维护。
在安装系统时如果选择了wu-ftpd软件包,就会自动安装。但如果我们想要使用最新的FTP软件包的话,可以到全世界各大FTP站点下载。目 前最新的版本是wu-ftpd-250,得到了wu-ftpd-250targz后,请按照我们下面的步骤进行安装。
1将wu-ftpd-250targz复制到临时目录中并解压缩:
# tar zxvf wu-ftpd-250targz
进入解压缩产生的目录wu-ftpd-250中,在开始安装之前请仔细阅读里面的README、INSTALL等文件,以便了解安装需要注 意的事项。
2执行命令“bulid lnx”,编译wu-ftpd-250的源程序。
# /bulid lnx
这条命令将编译Linux系统使用wu-ftpd所需的服务程序,如果一切正常的话,将产生如下几个可执行文件:
ftpd FTP服务程序
ftpshut 关闭FTP服务的程序
ftpcount 显示FTP 服务器目前连接的人数的程序
ftpwho 查看目前使用者
3.执行安装命令“make install”,将编译生成的可执行文件和man pages安装到系统中。
# make install
4. 修改/etc/inetdconf文件,加入如下一行:
ftp stream tcp nowait root /usr/sbin/tcpd inftpd -l –a
如果系统中以前安装有wu-ftpd的话,这一步可以略去不做,安装安装程序会自动更新/etc/inetdconf文件有关ftp的记录 项。
5.如果想为FTP用户提供压缩解压缩的功能,我们还需要将tar、gzip、compress、cpio、sh等可执行文件复制到/home /ftp/bin目录下。此外,还需要将ls命令复制到/home/ftp/bin中,以便使用者查看目录。
因为我们复制到/home/ftp/bin目录下的程序有可能是动态链接的,所以它们运行时还需要共享函数库,我们要将他们运行时需要用到的共 享库复制到/home/frp/lib目录中。检查这些命令所需要的共享库可以使用“ldd”命令。例如对于“ls”命令,我们使用“ldd /usr/bin/ls”命令就可以得到如下的输出:
# ldd /usr/bin/ls
libcso6 = > /lib/libcso6 ( 0x40003000 )
/lib/ld-linuxso2 = > /lib/ld-linuxso2 ( 0x00000000 )
这样,我们就需要将/lib/libcso6和/lib/ld-linuxso2复制到/home/ftp/lib目录中。其它命令所 需的共享库您也可以参照上面的方法找出并复制到/home/etc/lib目录中。
接下来复制/etc/passwd和/etc/group文件到/home/ftp/etc,并删除其中任何个人用户和个人用户组的信息。基本 上应该按照下面的例子修改:
#/home/ftp/etc/passwd文件
root::0:0:::
bin::1:1:::
operator::11:0:::
nobody::99:99:::
ftp::1000:1000:::
# /home/ftp/etc/group文件
root::0:
bin::1:
daemon::2:
sys::3:
adm::4:
ftp::1000:
6.为了确保提供FTP服务不会给我们的系统带来安全隐患,我们还需要采取以 下措施:
# chmod 0555 /home/ftp
# chmod 0111 /home/ftp/bin/
# chmod 0555 /home/ftp/lib/
# chmid 0444 /home/ftp/etc/
配置FTP服务器
在安装好wu-ftpd之后,我们还需要定制FTP服务器,使之实现我们上一节中提到的各种功能。为了使我们的FTP服务器实现这些功能,我们 需要修改ftpusers、ftpaccess、ftpconversions、xferlog、ftpgroups、ftphosts等系统配置文件。 下面我们就来看一看这些文件的功能以及配置它们的方法。
各配置文件的功能
在开始配置FTP服务器的配置文件之前,我们先来简要地介绍一下各个文件的功能。在开包后的wu-ftpd-250目录中的 doc/examples目录下,我们可以找到以下这些文件的示例。
/etc/ftpaccess 一般情况下,我们最为重视的配置文件应该是“ftpaccess”,因为该文件决定着我们FTP服务器是否能够正常工作。此外,我们还可以在这个系统参数 文件中设置多项有关使用权限记录,以及与信息有关的文件名称及路径。
/etc/ftpusers 决定哪些人不可以执行ftp命令来传输文件,这些帐号通常是root、bin、news以及guest等有特殊用途的帐户。
/etc/ftpconversions 配置该文件可以实现用户在通过FTP传输文件的同时,对文件进行压缩打包等处理。
/etc/ftphosts 决定哪些网络中的主机或某些用户不能访问FTP服务器的文件。
/etc/ftpgroups 该文件不是决定哪些用户组不能够访问FTP服务器,它只有在使用SITE GROUP功能时才有用。
/var/log/xferlog FTP日志文件。该文件将记录使用匿名帐户的用户所上传或下载的过的文件,该文件只是记录FTP信息,我们不需要对它进行配置。
大致了解了各个设置文件的功能以后,我们就来为您介绍这些文件中的内容以及学习如何配置。
配置/etc/ftpaccess文件
我们前面介绍的wu-ftpd的大多数功能都是在ftpaccess文件中设置的。我们无须自己编写该文件,doc/examples /ftpaccessheavy是一个稍微修改一下就能适用于大多数FTP服务器的例子,所以下面我们将以这个示例文件为例为您介绍ftpaccess 文件的配置。
# wu-ftpd-250的/etc/ftpaccess示例文件ftpaccessheavy
#
# 设置用户登录FTP服务器时,允许输错密码的次数。
# loginfails 2表示允许用户输错两次密码,如果两次都输入
# 错误的话,FTP服务器打印“repeated login failures”的信息
# 并退出FTP会话过程。如不设置,则缺省值是5。
#
loginfails 2
#
# class是用来定义用户级别的命令,它的格式为
# class <class> <typelist> <addrglob> [ <addrglob>…]
# FTP服务器上有三种类型的使用者,分别是“real”——表示
# 在该FTP服务器上有合法帐号的用户;“guest”——表示另行
# 定义的某些使用组的使用者;“anonymous”——权限最低的匿名
# 用户。有了这三种使用者以后,在ftpaccess文件中就可以根据不
# 同的使用者设置不同的存取权限。但是,只有三种定义一般是不够
# 的,我们可以根据class的语法定义更多的控制命令。例如:
# class remote real,guest,anonymous
# 这条class语句定义了remote中有三种不同的使用者,“”表示网络
# 上所有的计算机,也就是说任何人都可以访问FTP服务器,一般的匿名
# FTP站点都应该有这一项。如果我们希望某台主机或网域中的机器具有
# 特殊的权限,那么我们可以设置如下的class:
# class local real,guest,anonymous localhost
# 这表示本地主机的类别被定义为local,当我们从主机连上FTP服务器上
# 时,就可以用较为特别的权限。
# 下面是ftpaccessheavy文件指定的两个class,它们的意思是来自domain
# 和本地主机被归为local组,而其它的主机则是remote组。
#
class local real,guest,anonymous domain 0000
class remote real,guest,anonymous
#
# 我们可以使用limit命令设置某个时间段的FTP用户数量,如果超出了
# 规定的人数,则打印/etc/msgs/msgstoomany文件并拒绝用户登录。例如:
# limit local 20 Any /etc/msgs/msgsroomany
# 就是限制local这个组的机器同时间内最多允许20人连接FTP服务器,如果
# 超员,则打印/etc/msgs/msgstoomany文件,显示当前在线人数太多。ftp的
# 说明文件都可以包含变量,在说明文件中可以使用“变量替换(magic
# sookies)”以指定的字符串代替某个变量:
# %T 本地时间
# %F CWD所在分区的剩余空间
# %C 当前工作目录
# %E 定义在ftpaccess文件中维护者的电子邮件地址
# %R 远端主机名称
# %L 本地主机名称
# %U 登录时所给的用户名称
# %M 该class允许的最大使用者数目
# %N 该class目前的使用者数目
#
# 我们可以利用这些变量编辑一个显示信息非常完善的说明文件。下面的
# 例子是设置当local用户在任何时候不能超过20人,remote用户在周六
# 周日的18:00到6:00不能超过100人,否则将显示/etc/msgs目录下的
# msgtoomany文件的内容。
#
limit local 20 Any /etc/msgs/msgtoomany
limit remote 100 SaSu|Any1800-0600 /etc/msgs/msgtoomany
limit remote 60 Any /etc/msgs/msgtoomany
#
# readme命令的作用是指定用户登录或进行其它 *** 作(如更换目录)时
# FTP服务器提示用户阅读的文件。
#
readme README login
readme README cwd=
#
# messages命令主要是设置一些FTP的显示信息,如下面的“message
# /welcomemsg login”就是代表用户登录时,将显示/home/ftp目录下的
# welcomemsg作为进站画面。我们要提醒您的是FTP服务器都是以
# /home/ftp这个目录作为根目录的,所以要写成/welcomemsg。而
# “message message cwd=”则是定义用户在更换目录时将显示在目录
# 下的文件。
#
message /welcomemsg login
message message cwd=
#
# 下面定义的允许从local和remote登录的机器在传输文件时,可执行compress
# 压缩文件或使用tar命令将多个文件打包成一个文件。
#
compress yes local remote
tar yes local remote
#
# 是否允许通过SITE GROUP和SITE GPASS命令适用秘密文件
# allow use of private file for SITE GROUP and SITE GPASS
#
private yes
#
# 设置密码检查的规则。FTP服务器将要求匿名用户使用其电子邮件
# 地址作为密码,可是有人还是会胡乱输入,所以我们可以使用passwd-check
# 来查看用户是否输入一个类似于user@hostname的E- mail地址:none表
# 示不进行密码检查; trivial表示密码必须含有“@”;而使用rfc822时,
# 表示密码必须满足rfc822规定的地址。当密码不合要求时,warn将给予
# 警告,但依然允许他们登录,而enforce则表示警告并使用户退出。
#
# passwd-check <none|trivial|rfc822> [<enforce|warn>]
passwd-check rfc822 warn
#
# log commands <typelist>记录<typelist>类型(可以是anonymous、
# guest和real)用户使用的命令。Log transfer <typelist> <directions>
# 记录<typelist>类型的用户做的<directions>(可以为inbound传进服务器、
# outbound传出服务器)方向的文件传输。
#
log commands real
log transfers anonymous,real inbound,outbound
#
# 如果shutdown<path>指定的文件存在,FTP服务器将定期检查<path>文件
# 以查看服务器是否预定关闭。<path>文件的格式为:
# <year> <month> <day> <hour> <minute> <deny_offset> <disc_offset> <text>
# <deny_offset>和<disc_offset>的意思是在服务器关闭前多长时间新的登录
# 请求和现存的连接将被拒绝和终止。<text>是对拒绝连接的用户的一段信息。
# 如:
# 1999 10 25 00:00 0010 0005
# System shutdown at %s
# 表示1999年10月25日00:00关闭FTP服务器,10分钟以前拒绝连接,5分钟
# 以前中断正在连接的FTP服务。外部程序ftpshut可以用来产生<path>文件,
# 例如上面的文件可以通过如下的命令来产生:
# ftpshut 0000
#
shutdown /etc/shutmsg
#
# 设置用户在FTP服务器上可以使用的命令,我们可以看到下面所有的
# 命令后面都是“no”,也就是说guest用户不能使用delete、overwrite、
# rename命令,而anonymous则都不能使用。只有real用户可以使用这些命令。
# all the following default to "yes" for everybody
#
delete no guest,anonymous # delete permission
overwrite no guest,anonymous # overwrite permission
rename no guest,anonymous # rename permission
chmod no anonymous # chmod permission
umask no anonymous # umask permission
#
# 设置用户上传文件的目录。下面例子中/var/ftp目录下的/incoming目录可以
# 用来上传文件,上传文件的属主是root,组别是daemon,读取权限是0600,
# dirs表示在/incoming目录中可以创建子目录。
# specify the upload directory information
#
upload /var/ftp no nobody nogroup 0000 nodirs
upload /var/ftp /bin no
upload /var/ftp /etc no
upload /var/ftp /incoming yes root daemon 0600 dirs
#
# 为/incoming目录设置路径别名为inc:,用户在任何时候只要使用命令
# “cd inc:”就可以到达/incoming目录。
# directory aliases [note, the ":" is not required]
#
alias inc: /incoming
# cdpath主要定义在改变目录时使用的搜索路径。如果我们定义:
# cdpath /incoming/test、cdpath /pub、cdpath /,那么用户在任意路径
# 随便cd到一个目录,比如cd test,那么将依次搜寻:
# /incoming/test
# /pub/test
# /test
# 以寻找一个符合test目录的路径。
#
cdpath /incoming
cdpath /pub
cdpath /
#
# path-filter的功能是检查用户上传文件的文件名是否合法,如下面
# 第一条命令就是指定所有的匿名用户上传文件的文件名只能是以
# A-Z、a-z、0-9以及“_-”组成,而不能以一个“”或是一个“-”开始。
# 如果文件名不合法,将显示/etc/pathmsg给该用户。
#
path-filter anonymous /etc/pathmsg ^[-A-Za-z0-9_]$ ^ ^-
path-filter guest /etc/pathmsg ^[-A-Za-z0-9_]$ ^ ^-
#
# 设置guest用户
# specify which group of users will be treated as "guests"
#
guestgroup ftponly
#
# FTP服务器管理员的邮件地址
#
email user@hostname
以上是一些ftpaccess常用的设置,您也可以参考ftpaccess的man pagse来获得更详细的配置信息。
配置/etc/ftpusers和/etc/ftphosts文件
通过ftpusers文件,我们可以限制系统中有哪些用户不能使用ftp服务,ftphosts文件与之类似,所不同的是该文件中记录的是不能 访问FTP服务器的主机。通常这样做的目的都是出于系统安全的考虑。Wu-ftpd 为我们准备有这两个文件的示例,我们可以在examples 目录中找到它们。下面是ftpusers文件设置的例子:
# 禁止使用FTP服务的用户
root
bin
boot
daemon
digital
field
gateway
guest
nobody
operator
ris
sccs
sys
uucp
限制这些用户使用FTP服务器主要是基于系统安全的考虑,避免权利过大的用户(如root、ftpadm)登录FTP服务器和避免使用系统命令作为 帐号(如shutdown、sync),以避免系统管理上的困惑。我们可以根据自己使用的需要,向该文件中增加或删除用户并将它复制到/etc目录中。
如果我们要架设的是匿名FTP服务器,那么通常不需要设置ftphosts文件,对于其它类型的FTP服务器可以参考 examples/ftphosts文件的格式结合自己的情况加以修改,然后复制到/etc目录中即可。下面是examples/ftphosts文件, 该文件允许网络somehostdomain中的用户ftp访问FTP服务器(somehostdomain可以是IP地址或域名)而禁止网络 otherhostdomain和网络13121132中的用户fred使用FTP服务。
#
# ftphosts文件配置示例,allow和deny的格式分别为:
# allow <username> <hostname or domain>
# deny <username> <hostname or domain>
#
# 以“#”开头的均为注释,空行将被忽略
#
allow ftp somehostdomain
deny fred otherhostdomain 13121132
配置/etc/ftpconversions文件
ftpconversions文件主要定义用户从FTP服务器中下载文件时对文件进行格式转换的规则。例如压缩、解压缩、打包和开包等 *** 作,这 样用户就不必为targz、tgz、Z、z之类的文件伤脑筋了。Ftpconversions文件的格式初看上去很复杂,不过不用担 心,/examples目录中也有该文件的例子,我们只要原封不动的将它复制到/etc目录中就能满足我们的使用需要了。下面让我们来看看 ftpconversions文件中各个记录项,有关各项的说明我们罗列在表14-1中:
#
# ftpconversions文件示例
#
#
:Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
: : :Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
:gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
: : :gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
: : :tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
: : :tarZ:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
: : :targz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
: : :crc:/bin/cksum %s:T_REG::CKSUM
: : :md5:/bin/md5sum %s:T_REG::MD5SUM
表1 ftpconversions文件各项说明对照表
真实文件名
目标文件名
命令 *** 作
<filename>Z
<filename>
传递前使用comprss –d命令压缩
<filename>gz
<filename>
传递前使用gzip –d命令压缩
<filename>
<filename>Z
传递前使用compress 命令压缩
<filename>
<filename>gz
传递前使用gzip –9命令压缩
<filename>
<filename>tar
传递前使用tar –cf命令打包
<filename>
<filename>tarZ
传递前使用tar –cZf命令打包并压缩
<filename>
<filename>targz
传递前使用tar –czf命令打包并压缩
<directory>
<directory>tarZ
传递前使用tar –cZf命令对目录打包并压缩
<directory>
<directory>targz
传递前使用tar –czf命令对目录打包并压缩
Ftpconversions文件基本上把常用的压缩,打包命令都包括在内了,我们只要将它复制到/etc目录中,以后只要有人访问我们的 FTP服务器,FTP服务程序就会根据用户的需要执行压缩或打包的命令。例如,用户想下载目录Howto中所有的文件,那么他不必使用mget命令,而只 要使用get Howtotargz,这时wu-ftpd就会将该目录打包压缩并发送到用户的机器上了。所以使用该文件可以完成压缩传递的数据量,减少传输时间等作 用。此外ftpconversions文件中定义的可执行文件的位置/bin指的都是/home/ftp/bin而不是Lnux /目录下的bin,所以请检查/home/ftp/bin目录中有无上述命令,如果没有还需要将这些程序复制到该目录中。
截止到这里,匿名FTP服务器的架设工作基本上就完成了,我们可以用ftp命令连接自己的服务器,检查合法用户和匿名用户的连接情况以及各个目 录的权限是否正确。之后就可以准备FTP服务的开张了。
查看全部更多资料去591cto


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13447692.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-08
下一篇 2023-08-08

发表评论

登录后才能评论

评论列表(0条)

保存