当前位置:操作系统 > Unix/Linux >>

基于UNIX平台FTP服务器的建立

目前很多企业单位正在构架自己的Intranet,FTP服务器是其中的一个服务支持,有很多单位购置了基于UNIX平台的计算机,为了在网上能够提供FTP服务支持,专门购置基于UNIX平台的FTP Server软件,其实在基于UNIX平台的计算机系统中,采取一定的技术方法,就可以建立自己的FTP Server,实现网上文件上下载服务,无须再购置专门的软件,和乐而不为之呢?下面就其建立过程阐述如下:

  1.确定FTP Server的共享目录

  为FTP Server建立一个FTP工作目录,在此设定为/home/ftp

  2.编写FTP Server初始设置的Shell程序(setup)

  用编辑工具(如vi)编写一个Shell程序,用于对系统进行设置。

  #!/bin/sh

  case $# in

  0) ftphome="`grep '^ftp:' /etc/passwd | cut -d: -f6`"

  ;;

  1) if [ "$1" = "start" ]; then

  ftphome="`grep '^ftp:' /etc/passwd | cut -d: -f6`"

  else

  ftphome=$1

  fi

  ;;

  *) echo "Usage: $0 [anon-ftp-root]"

  exit 1

  ;;

  esac

  if [ -z "${ftphome}" ]; then

  echo "$0: ftphome must be non-null"

  exit 2

  fi

  if [ "${ftphome}" = "/" -o "${ftphome}" = "/usr" ]; then

  echo "$0: ftphome must not be / or /usr"

  exit 2

  fi

  if [ ! -d ${ftphome} ]; then

  mkdir ${ftphome}

  fi

  if [ ! -d ${ftphome}/usr/bin ]; then

  mkdir -p ${ftphome}/usr/bin

  fi

  cp /usr/bin/ls ${ftphome}/usr/bin

  chmod 111 ${ftphome}/usr/bin/ls

  chown root ${ftphome}/usr/bin

  chmod 555 ${ftphome}/usr/bin

  if [ -r ${ftphome}/bin ]; then

  mv -f ${ftphome}/bin ${ftphome}/Obin

  fi

  ln -s usr/bin ${ftphome}

  if [ ! -d ${ftphome}/usr/lib ]; then

  mkdir -p ${ftphome}/usr/lib

  fi

  if [ ! -d ${ftphome}/etc ]; then

  mkdir -p ${ftphome}/etc

  fi

  cp /usr/lib/ld.so /usr/lib/ld.so.1 ${ftphome}/usr/lib

  for lib in libc libdl libintl libw libnsl libsocket

  nss_nis nss_nisplus nss_dns nss_files

  do

  cp /usr/lib/${lib}.so.1 ${ftphome}/usr/lib

  rm -f ${ftphome}/usr/lib/${lib}.so

  ln -s ./${lib}.so.1 ${ftphome}/usr/lib/${lib}.so

  done

  cp /usr/lib/straddr.so.2 ${ftphome}/usr/lib

  rm -f ${ftphome}/usr/lib/straddr.so

  ln -s ./straddr.so.2 ${ftphome}/usr/lib/straddr.so

  cp /etc/passwd /etc/group /etc/netconfig ${ftphome}/etc

  chmod 555 ${ftphome}/usr/lib/*

  chmod 444 ${ftphome}/etc/*

  chown root ${ftphome}/usr/lib ${ftphome}/etc

  chmod 555 ${ftphome}/usr/lib ${ftphome}/etc

  if [ ! -d ${ftphome}/dev ]; then

  mkdir -p ${ftphome}/dev

  fi

  prefix="/devices/pseudo/mm@0:"

  for device in zero

  line=`ls -l ${prefix}${device} | sed -e 's/,//'`

  major=`echo $line | awk '{print $5}'`

  minor=`echo $line | awk '{print $6}'`

  rm -f ${ftphome}/dev/${device}

  mknod ${ftphome}/dev/${device} c ${major} ${minor}

  done

  prefix="/devices/pseudo/clone@0:"

  for device in tcp udp ticotsord

  do

  line=`ls -l ${prefix}${device} | sed -e 's/,//'`

  major=`echo $line | awk '{print $5}'`

  minor=`echo $line | awk '{print $6}'`

  rm -f ${ftphome}/dev/${device}

  mknod ${ftphome}/dev/${device} c ${major} ${minor}

  done

  chmod 666 ${ftphome}/dev/*

  chown root ${ftphome}/dev

  chmod 555 ${ftphome}/dev

  #建立一个匿名FTP服务目录,并设立可读可写属性

  if [ ! -d ${ftphome}/pub ]; then

  mkdir -p ${ftphome}/pub

  fi

  chown ftp ${ftphome}/pub

  chmod 777 ${ftphome}/pub

  3. 编辑/etc/passwd和/etc/shadow文件

  设置匿名FTP帐号,按下面方法分别对/etc/passwd和/etc/shadow两个文件中增加如下数据项:

  (1)在/etc/passwd文件中增加

  ftp:x:30000:30000:Anonymous FTP:/home/ftp:/nosuchshell

  (2)在/etc/shadow文件中增加

  ftp:NP:6445::::::

  4. 运行setup程序

  在运行setup程序之前,将该文件设置成执行文件

  #chmod +x setup

  运行setup程序 #setup /home/ftp

  以上步骤就完成了FTP服务器的建立,即可使用FTP服务器,可以用如explorer、netscape navigator等浏览器对FTP服务器进行访问,进行下载和上载文件操作,使用非常方便。

  

上一个:scounix5.05系统intelpro100+网卡安装心得
下一个:sed与unix命令等价代码鉴赏

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,