歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> Unix教程 >> 基於UNIX平台FTP服務器的建立

基於UNIX平台FTP服務器的建立

日期:2017/2/27 17:43:52   编辑:Unix教程

  目前很多企業單位正在構架自己的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服務器進行訪問,進行下載和上載文件操作,使用非常方便。
Copyright © Linux教程網 All Rights Reserved