Warning: session_start(): open(/tmp/sess_nhl0cas7o2vgn5uus4h6upfg86, O_RDWR) failed: Disk quota exceeded (122) in /home/tensungn/public_html/www.tzlink.com/info/show.php on line 8

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/tensungn/public_html/www.tzlink.com/info/show.php:8) in /home/tensungn/public_html/www.tzlink.com/info/show.php on line 8

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/tensungn/public_html/www.tzlink.com/info/show.php:8) in /home/tensungn/public_html/www.tzlink.com/info/show.php on line 8
FTP相关内容 - Linux服务器架设 - 站长之家

热烈祝贺台州维博网络的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » Linux服务器架设 » FTP相关内容

FTP相关内容

论坛链接
  • FTP相关内容
  • 发布时间:2009-12-07 08:55:29    浏览数:6753    发布者:lutr    设置字体【   
 FTP作为互联网上使用最多的协议之一,常常会使用到。实现这个协议的软件也非常多,今天我们基于Red Hat Enterprise Linux 5上默认vsftpd这个软件来讨论一下,ftp服务器某些肤浅的功能。

  一、基本配置

  /etc/vsftpd/vsftpd.conf为vsftp程序的主配置文件,其中默认添加了如下的参数:

  anonymous_enable=YES

  #打开这个选项可以支持用户匿名登录;

  local_enable=YES

  #这个选项等于YES,支持本地用户登录。如果没有这个选项,默认为NO。

  write_enable=YES

  #这个选项置为YES可以支持用户创建文件(注意:用户对要创建文件的目录必须有“w”和“x”权限。)

  local_umask=022

  #本地用户创建文件或目录时的umask(掩码)

  anon_upload_enable=YES

  #允许匿名用户上传文件

  anon_mkdir_write_enable=YES

  #允许匿名用户创建目录

  dirmessage_enable=YES

  #打开这个选项,当用户进入某个目录时,会在目录下搜索.message文件,并显示到#屏幕上。这个选项可以配合message_file选项。

  xferlog_enable=YES

  #如果这个选项为YES,则会记录上传和下载信息,默认记录到/var/log/vsftpd.log文

  #件中,但这个文件的位置可以由vsftpd_log_file选项来控制。

  #注意:当xferlog_std_format设置为NO的时候以上两个选项才能生效。

  xferlog_std_format=YES

  xferlog_file=/var/log/xferlog

  #以上两个参数是将传输的日志记录以xferlog的标准格式记录在xferlog_file选项指

  #定的日志文件中。

  connect_from_port_20=YES

  #指定主动模式的数据端口

  chown_uploads=YES

  chown_username=whoever

  #若chown_uploads=YES,并且chown_username=whoever,则上传的文件的所有者#会变成whoever。

  idle_session_timeout=600

  #在idle_session_timeout限定的时间内,如果客户端没有任何操作,服务器将断开#连接,单位为秒(s)。

  data_connection_timeout=120

  #数据连接超时时间,即如果发出数据连接经过data_connection_timeout后没有响

  #应,则断开连接,单位也为秒(s)。

  nopriv_user=ftpsecure

  #?????????

  userlist_enable=YES

  userlist_file = /etc/vsftpd/user_list

  #以上两个参数的作用是控制用户登录
      # vsftpd程序通过两种方式来限制用户登录:

  1) 通过userlist_enable与userlist_file共同确定某些用户是否可以通过验证,即在userlist_file指定的文件中出现的用户,不被允许登录。

  当一个用户只在userlist_file文件中出现时(即不再ftpusers文件中出现),登录提示信息如下:

  >Name (localhost:root): root

  >530 Permission denied.

  >Login failed.

  2) 通过/etc/vsftpd/ftpusers文件限制,当一个用户出现在ftpusers这个文件中,则这个用户不能通过密码验证。提示信息如下,好像是密码错误一样:

  >Name (localhost:root): root

  >331 Please specify the password.

  >Password:

  >530 Login incorrect.

  >Login failed.

  注:ftpusers文件名的制定在/etc/pam.d/vsftpd中,

  auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

  意思是从/etc/vsftpd/ftpusers取数据,把取出的每行当做一个用户名,如果某个用户名,则拒绝这个用户登录。

  ascii_upload_enable=YES

  ascii_download_enable=YES

  #允许客户端以ASCII的模式上传和下载文件。即把数据转换为ASCII码形式传输。

  ftpd_banner=Welcome to blah FTP service.

  #当客户端登录的时候,将后面的字符串显示在客户端。

  banner_file = /somefile

  #这个选项可以将somefile中的信息输出到客户端。

  deny_email_enable=YES

  banned_email_file = /somefile

  #开启deny_email_enable选项,可以阻止密码是出现在somefile中的Email地址的

  #匿名用户。

  chroot_local_user=YES

  chroot_list_enable=YES

  chroot_list_file=/etc/vsftpd/chroot_list

  #限定某些用户在登录时是否执行chroot,这三个选项需要配合使用,其关系如下:

  1) chroot_local_user no

  chroot_list_enable no 任何系统账号不受chroot限制

  2) yes

  no 所有系统帐号受chroot限制

  3) no

  yes 只有chroot list文件中的用户受限制

  4) yes

  yes 只有chroot文件中的用户不受限制

  ls_recurse_enable=YES

  #此选项为YES时,支持ls –R命令,即可以递归显示某个目录的内容。

  listen=YES

  #若listen=YES,则vsftpd服务以standalone模式启动,若listen=NO,则受到超级守

  #护进程xinetd管理。

  pam_service_name=vsftpd

  #指定vsftpd使用的pam配置文件

  tcp_wrappers=YES

  #是否支持tcp wrapper进行访问控制。
      二、两个实验

  1. 虚拟用户——映射到一个本地用户

  Step 1) 创建虚拟用户的数据库.

  通过pam_userdb这个模块来认证虚拟用户,这需要一个通用格式的”用户名/密码”格式的数据库文件。通过db_load这个命令来创建(注:需要安装db4-4.3.29-10.el5及db4-utils-4.3.29-10.el5.i386这两个包),步骤如下:

  1) 创建一个包含用户名和密码的文本文件,

  #vi logins.txt

  tom

  redhat

  jerry

  123456

  注意名字与密码之前不能有空格,这个文件表示用户tom密码是redhat,而用户jerry的密码是123456.

  2) 将文本转换为数据库文件,

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

  #chmod 600 /etc/vsftpd/login.db

  Step 2) 创建一个pam配置文件

  1) #vi /etc/pam.d/ftp

  auth required /lib/security/pam_userdb.so db=/etc/vsftpd/login

  account required /lib/security/pam_userdb.so db=/etc/vsftpd/login

  (一定要在主配置文件中修改相应的选项,pam_service_name=ftp)

  Step 3) 创建虚拟用户要映射到的用户,

  1) 添加用户

  [root@server1 Server]# useradd -d /home/ftpsite virtual

  [root@server1 Server]# ll -d /home/ftpsite/

  drwx------ 3 virtual virtual 4096 Nov 27 19:56 /home/ftpsite/

  2) 拷入一些文件,以便测试登录效果,

  cp /etc/hosts /home/ftpsite

  chown virtual.virtual /home/ftpsite/hosts

  Step 4) 修改主配置文件,

  1) 开启虚拟用户映射的功能,并制定映射到的用户。(其余具体配置请参考“一、基本配置”,)

  guest_enable=YES

  guest_username=virtual

  Step 5) 重启vsftpd服务,

  [root@server1 ~]# service vsftpd restart

  Shutting down vsftpd: [ OK ]

  Starting vsftpd for vsftpd: [ OK ]
      Step 6) 测试

  Launch another shell session (or background vsftpd with CTRL-Z and then "bg").

  Here is an example of an FTP session:

  ftp localhost 10021

  Connected to localhost (127.0.0.1).

  220 (vsFTPd 2.0.5)

  Name (localhost:root): tom

  331 Please specify the password.

  Password:(redhat)

  230 Login successful.

  Remote system type is UNIX.

  Using binary mode to transfer files.

  ftp> pwd

  257 "/"

  ftp> ls

  227 Entering Passive Mode (127,0,0,1,117,135)

  150 Here comes the directory listing.

  226 Transfer done (but failed to open directory).

  ftp> size hosts

  213 147

  ftp>

  注意: 执行ls命令时,出现"failed to open directory". 这是因为目录/home/ftpsite 不是一个world_readable的目录。可以通过anon_world_readable_only=NO使用户可以看到目录中的内容。

  2. 分用户配置

  实验要求:有两个用户,tom和jerry,要求tom只能读取和下载,jerry可以读取、下载和上传。

  Step 1) 激活分用户配置支持

  修改/etc/vsftpd/vsftpd.conf文件,

  user_config_dir=/etc/vsftpd/vsftpd_user_conf

  这个选项是指定用户配置文件的位置。

  mkdir /etc/vsftpd/vsftpd_user_conf

  Step 2)授予tom“读”权限

  在vsftpd_user_conf目录下建立一个与tom同名的文件,加入对tom生效的参数,

  #echo "anon_world_readable_only=NO" > /etc/vsftpd/vsftpd_user_conf/tom

  #echo "write_enable=NO" >>/etc/vsftpd/vsftpd_user_conf/tom

  Step 3) 授予jerry“读写”权限

  echo "anon_world_readable_only=NO">/etc/vsftpd/vsftpd_user_conf/jerry

  echo "write_enable=YES" >> /etc/vsftpd/vsftpd_user_conf/jerry

  echo "anon_upload_enable=YES" >> /etc/vsftpd/vsftpd_user_conf/jerry
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理

Warning: Unknown: open(/tmp/sess_nhl0cas7o2vgn5uus4h6upfg86, O_RDWR) failed: Disk quota exceeded (122) in Unknown on line 0

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0