免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 819 | 回复: 0
打印 上一主题 下一主题

如何在 Linux 上设置 FTP 服务 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-14 14:38 |只看该作者 |倒序浏览

解决方法
  • 软件安装
    首先,确保系统上安装了所有必需的套装软件。安装的版本应该至少满足下列内容:
    xinetd -2.3.3-1LL1
    anonftp-3.0-9
    wu-ftpd-2.6.1-6
    使用下列命令查看是否安装了这些软件:
    # /bin/rpm -qa | egrep '(wu- ftpd|anonftp|xinetd)'
    如果没有安装这些套装软件,则可以从 Red Hat Linux 安装光盘进行安装,作为 root 用户执行下列操作:
    # /bin/mount /mnt/cdrom
    # cd /mnt/cdrom/RedHat/RPMS/
    # /bin/rpm -ivh wu-ftpd* anonftp* xinetd*
    # cd
    # /bin/umount /mnt/cdrom
  • 配置 xinetd.conf
    需要设置 /etc/xinetd.d/wu-ftpd 文件来处理 FTP 访问。使用您最喜欢使用的编辑器打开该文件,查找配置行,看有没有 "disable",确保它设置为了 "no", server_args 设置为了 "-l -a"。如果在该行开始有一个 "#" 符号,则将其删除。该文件应如下所示:
    # cat wu-ftpd # default: on # description: The wu-ftpd FTP server serves FTP connections. It uses \ # normal,unencrypted usernames and passwords for authentication. service ftp { disable = no socket_type = stream wait = no user = root server = /usr/sbin/in.ftpd server_args = -l -a log_on_success += DURATION USERID log_on_failure += USERID nice = 10 }
    注意: 很重要的一点是要指定 -a。这样将告知 inetd.conf 引用 /etc/ftpaccess 文件中的命令。
  • 授予对 FTP 服务的访问权限
    a. 编辑 /etc/ftpaccess
    编辑 /etc/ftpaccess 文件 (注意,基本的更改可以作为 root 用户通过实用程序 Linuxconf 完成,但是附加的更改则需要在此文件中手动完成)。您需要向您的 /etc/ftpaccess 文件添加一行内容,如下所示:
    class all real,guest,anonymous *
    可能此行已经在 /etc/ftpaccess 文件中,但是是作为注释出现的。如果是这种情况,删除字符 (#) 即可。
    b. 其他 ftpaccess 选项
    注意: /etc/ftpaccess 文件中的上述更改只会为在本地定义的常规用户打开 FTP 访问。它不会为 root 用户打开访问。如果您也想为 root 用户打开 FTP,请执行下列操作,但是不建议这样作,:
  • 编辑 /etc/ftpusers,从其中删除 'root'。默认的 /etc/ftpuser 文件大多数情况下都不会包含一个 'root' 用户条目,但是如果您要允许 root 用户通过 FTP 进行登录,则需要确保没有用户 root 的条目。
  • 再次编辑 /etc/ftpaccess 文件,这次当您在 /etc/ftpaccess 文件中看到包含 'deny-gid' 和 'deny-uid' 的条目时,则禁用这些条目 (在该行前面添加一个 # 符号)。
  • 保护和隐藏 FTP 服务器
    理想情况下,当 FTP 用户登录到系统时,他们应只允许进入 root 路径中指定的目录。为了让这种情况生效,您需要完成几个步骤。首先是确定这些规则应用到一个用户还是一组登录到虚拟 FTP 站点的用户。创建用户帐户时,需要在 /etc/passwd 文件中为该用户指定主目录条目,并将该条目与 /etc/ftpaccess 中指定的条目一样,后面跟着一个 /./ 该条目应如下所示:
    bob:X:2453:group1::/var/ftp/home/domain1/./:/bin/bash
    如果 Bob 是访问该虚拟 FTP 站点的唯一用户,则在 FTP 访问文件中虚拟配置行之后添加下行内容:
    guestuser bob
    这样,当 Bob 登录到 10.10.10.10 之后,他将自动进入 /home/domain1,但是 Bob 会将此目录看作 / 目录 (因此也就无法移动到该目录之外的目录中)。
    如果有一组用户 (除了 Bob 之外) 要 FTP 到此目录,则必须在 /etc/group 中有一个用于该组的条目。然后在 FTP 访问文件中虚拟配置条目之后添加下行内容:
    guestgroup group1
    对于此规则也可以有 "例外"。例如,如果有一个用户 "steve",他是该 FTP 站点的管理员,需要成为此规则的例外,则这些行应该如下所示:
    guestgroup group1
    realuser steve
    另外,有关此规则的更多选项,请参阅 Man Page。
  • 基本 Shell 访问
    接下来,为了使得用户能够对于这些目录具有基本的 Shell 访问,需要进入 /var/ftp (该目录是在安装 anonftp rpm 时在系统上自动安装的),并将 /var/ftp/bin、 /var/ftp/etc/ 和 /var/ftp/lib 复制到该虚拟 FTP 站点的 root 目录,在这里是 /var/ftp/home/domain1
  • 确保在重新引导过程中执行了 xinetd 启动 Script
    现在如果计算机正在运行级别二运行,则 xinetd.d Daemon 很可能不会在启动重新引导时自动启动。请检查您的运行级别,检查与该运行级别相对应的 xinitd.d 服务是否是从相应的 /etc/rc.d/rc[number].d 目录启动的。
    例如,如果正在使用运行级别二作为默认的运行级别,则需要创建一个 Symbolic Link 指向 /etc/rc.d/init.d/xinitd.d 启动 Script。
    # cd /etc/rc.d/rc2.d
    # lns ../init.d/xinetd S56xinetd
  • 重新启动服务使得配置生效
    最后,指定了对于 inet 服务的所有更改时,需要重新启动 inet 服务:
    # /sbin/service xinetd stop
    # /sbin/service xinetd start
    or
    # /sbin/chkconfig wu-ftpd off
    # /sbin/chkconfig wu-ftpd on

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11317/showart_171122.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP