tangbinde 发表于 2015-11-6 11:59:10

在Fedora14中配置vsftp

  
  
1.vsFTP服务器安装。
  
  如果能上网的话,在Fedora下可以采用yum来安装vsFTP。在终端输入
  yum install vsftpd
2.vsFTP服务器配置。
  安装完成以后菜单中可以找到vsFTP菜单项。启动服务:service vsftpd start
  Fedora中vsftp的配置文件默认在 /etc/vsftpd/vsftpd.conf 。
  用文本编辑器或者从终端通过 vi 来编辑vsftpd.conf。下面介绍vsftpd.conf文件中各命令的作用。
  anonymous_enable=YES            
  #允许匿名访问
  local_enable=YES                     
  #允许本地用户访问(/etc/passwd中的用户)
  write_enable=YES
  #允许写入权限,包括修改,删除
  local_umask=022
  #本地用户文件上传后的权限是-rw-r-r
  #anon_umask=077
  #匿名用户上传后权限是-rw—-
  anon_world_readable_only=YES
  #允许匿名用户浏览,下载文件
  anon_upload_enable=YES
  #允许匿名用户上传
  #anon_mkdir_write_enable=YES
  #允许匿名用户建立目录
  anon_other_write_enable=YES
  #允许匿名用户具有建立目录,上传之外的权限,如重命名,删除
  dirmessage_enable=YES
  #当使用者转换目录,则会显示该目录下的.message信息
  xferlog_enable=YES
  #记录s使用者所有上传下载信息
  xferlog_file=/var/log/vsftpd.log
  #将上传下载信息记录到/var/log/vsftpd.log中
  connect_from_port_20=YES
  #确保ftp-datad 数据传送使用port 20
  idle_session_timeout=600
  #如果使用者600秒没有动作,则踢出
  chroot_list_enable=YES
  #限制使用者不能离开家目录,例如blue登陆后位于/home/blue下,设置该选项后,他不可以转到/home/blue的上层目录,如/bin, /usr,/opt…etc。
  chroot_list_file=/etc/vsftpd.chroot_list
  #与上条同时使用,设置限制使用者的存放文件为/etc/vsftpd.chroot_list
  #建立文本文件/etc/vsftpd.chroot_list,写入要限制的用户,一行一个。
  #如果希望限制所有用户,则可以设置chroot_local_user=YES 代替上面两行
  tcp_wrappers=YES
  #支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)
  listen=YES
  #使用standalone启动vsftpd,而不是super daemon(xinetd)控制它 (vsftpd推荐使用standalone方式)
  listen_port=21
  #ftp监听端口
  userlist_enable=YES
  userlist_deny=YES
  userlist_file=/etc/vsftpd.user_list
  #以上三条设定不允许登陆的用户,用户列表存放在/etc/vsftpd.user_list中,一行一个帐号
  pam_service_name=vsftpd
  #PAM所使用的名称.同userlist_*一样限制用户登陆,不同的是userlist_*在进行密码验证之前拒绝用户登陆,pam是在密码验证之后拒绝登陆.(提示密码错误) 用户列表默认存放在/etc/ftpusers中,一行一个. (可通过/etc/pam.d/vsftpd重定向用户列表存放文件)
  #获得 /etc/pam.d/vsftpd:
  #cp etc/vsftpd.pam /etc/pam.d/vsftpd
  max_clients=100
  #最大用户在线数量
  max_per_ip=2
  #每ip最大线程
  anon_max_rate=30000
  #匿名用户最大传输速度单位: bytes/秒
  local_max_rate=50000
  #本地用户最大传输速度单位:bytes/秒
  user_config_dir=/etc/userconf
  #个别用户配置目录(用来设定特殊帐号),例如我想让blue这个用户的传输速度是100KB
  就可以在/etc/userconf/下创建文本文件blue(与用户名相同),加入local_max_rate=100000即可
  anon_root=/var/ftp
  #设定匿名用户登陆后所在的目录
  local_root=/var/local_user
  #设定所有本地用户登陆后的目录,如不设置此项,则本地用户登陆后位于各自家目录下。
  use_localtime=YES
  #使用本地时间而不是GMT
  nopriv_user=vsftpd
  #设定服务执行者为vsftpd,默认使用的是nobody,vsftpd推荐使用一个权限很低的用户.这里用vsftpd代替nobody,创建 vsftpd用户:
  #groupadd vsftpd
  #useradd -d /dev/null -g vsftpd -s /bin/false vsftpd
  这样就有了个权限非常低的vsftpd用户(没有家目录(/dev/null),没有登陆shell(/bin/false),系统会更安全,设定好后就可以启动啦 http://onexin.iyunv.com/source/plugin/onexin_bigdata/file:///C:/Users/Administrator/AppData/Local/Temp/CyberArticle/1966db2dd768d103ad8e084f1b7a63aa_68_files/icon_smile.gif
  #/usr/sbin/vsftpd
  #netstat -tul
  Active Internet connections (only servers)
  Proto Recv-Q Send-Q Local Address         Foreign Address         State
  tcp      0      0 *:6000                  *:*                     LISTEN
  tcp      0      0 *:ftp                   *:*                     LISTEN
  
3.VsFTP出现500 OOPS: cannot change directory的解决办法
  
  ftp服务器连接失败,错误提示:500 OOPS: cannot change directory:/home/*******
  出现上述问题是系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
  解决方法1:
  //查看SELinux设置
# getsebool -a|grep ftp
ftpd_disable_trans --> off
或者
ftp_home_dir-->off
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
//查看当前状态是否是on的状态
# getsebool -a|grep ftp
ftpd_disable_trans --> on
或者
ftp_home_dir-->on
//setsebool使用-P参数,无需每次开机都输入这个命令
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
# service vsftpd restart
  
  解决方法2:
  
  打开/etc/selinux/config
  将selinux=enforcing 改成 permissive或 disabled。
  ·enforcing强制模式,只要SELinux不允许,就无法执行;
  ·permissive警告模式,将该事件记录,依然允许执行;
·disabled关闭SELinux;
·停用、启用需要重启计算机;
·使用setenforce切换enforcing与permissive模式不需要重启计算机;
·getenforce及sestatus查看执行模式;
  
  关闭selinux命令:setenforce 0
  
  
  
  
  
             版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: 在Fedora14中配置vsftp