在 solaris 上, 建立 Anonymous FTP
发布时间:2006-10-14 8:48:24   收集提供:gaoqian
小弟为了要让别人能够利用 Anonymous FTP,将资料upload给我,因此想建立
一个Anonymous FTP. 要建立 Anonymous FTP,可以利用 WU-FTP 这套软体来
建立, 然而小弟在 Solaris 上却 make 不起来. 後来去查了一些 document
才发现, 在 solaris 上可以不用安装 WU-FTP,而直接建立 Anonymous FTP.
其建立的详细方法,可以去 man ftpd 来看看. 以下则简述其建立的方法.

对於 Anonymous FTP 的使用者, in.ftpd 限定了该使用者的一些使用特权.
要建立一个Anonymous FTP, 建议依下列的步骤来设定.

1. 建立一个 Anonymous FTP 的 home directory. 这个目录是Anonymous 
   FTP 的根目录, 所有 Anonymous 所能存取的档案,都在这个目录以下.
   假设我们叫这个目录为 ~ftp (例如建立在 /export/ftp). 这个目录
   的拥有者需为 root, 且对任何人都不能有写的权限.

2. 建立 ~ftp/bin   这个目录是用来放 Anonymous 所能使用的指令. 一般
   来说, 放入 ls 和 pwd 即可.这个目录的拥有者需为 root, 且对任何人
   都不能有写的权限. 目录内, 档案的 mod 需为 111.(ex. %chmod 111 * )

3. 建立 ~ftp/usr/lib   这个目录是用来存放当 Anonymous 使用者在使用
   FTP时,所会使用到的 library. 这个目录的拥有者需为 root, 且对任何人
   都不能有写的权限. 你可以把存在 /usr/lib 的下列档案拷贝到这个目录内.

                 ld.so.1*
                 libc.so.1*
                 libdl.so.1*
                 libmp.so.2*
                 libnsl.so.1*
                 libsocket.so.1*
                 nss_compat.so.1*
                 nss_dns.so.1*
                 nss_files.so.1*
                 nss_nis.so.1*
                 nss_nisplus.so.1*
                 nss_xfn.so.1*
                 straddr.so*
                 straddr.so.2*

4. 建立 ~ftp/etc   这个目录是用来存放 FTP 使用者及权限.这个目录的
   拥有者需为 root, 且对任何人都不能有写的权限. 你可以把 /etc/passwd
   /etc/group 以及 /etc/netconfig 拷贝到这个目录中. 并且修改 passwd及
   group.
   在 passwd 这个档中, 你只需留 root,daemon,uucp,ftp这几个 user. 内容
   如下: (请依自己的环境设定)

   root:x:0:1:Super-User::
   daemon:x:1:1:::
   uucp:x:5:5:uucp Admin::
   ftp:x:30000:400:Anonymous FTP::

   在 group 进个档中, 你只需留必需的 group . 如 other (root,daemon的
   group),uucp (uucp 的 group),ftp (ftp 的group). 内容如下: (请依自
   己的环境设定)
  
   other::1:
   uucp::5:root,uucp
   ftp::400:

5. 建立 ~ftp/pub   这个目录是给 Anonymous 存取档案的地方, 也就是一般
   我们用 Anonymous FTP 时, 所可以 download file 的地方. 此目录的拥有
   者为 ftp 的理者. 而其 mod 需设为 755.

6. 建立 ~ftp/dev  这个目录是当Anonymous FTP使用者在执行指令行, 所需用
   到的装置. 要建立这些装置, 要先以 ls -lL 来看下列四个装置的属性.

                 /dev/zero
                 /dev/tcp
                 /dev/udp
                 /dev/ticotsord

   然後再利用 mknod , 在 ~ftp/dev 内建立这四个装置.

   例如:
   % ls -lL /dev/zero
   crw-rw-rw-   1 root     root      13, 12 Feb 19 15:00 /dev/zero
  ^^^                                ^^^ ^^^                  ^^^^
   则建立 zero 这个 device 的方法为
   % mknod zero c 13 12

   建立好了之後, 必需将其 mod 设为 666 才不会产生 "permission denied"
   的错误息.

7. 建立 ~ftp/usr/share/lib/zoneinfo  这个目录是让 Anonymous 在使用
   ls -l 时, 会显示出正确的时间及日期. 需将其 mod 设为 555

8. in.ftpd 利用 pam 来对使用者做 认,计费管理及session的管理. pam的
   设定档存放在 /etc/pam.conf .你必需把以下三行加入 pam.conf这个档案
   里头.

          ftp   auth      required   /usr/lib/security/pam_unix.so.1
          ftp   account   required   /usr/lib/security/pam_unix.so.1
          ftp   session   required   /usr/lib/security/pam_unix.so.1

9. 最後, 要设定 Anonymous FTP 的步骤, 就是开一个 Anonymous 的帐号.
   假设 Anonymous FTP 的 root 为 /export/ftp . 则你必需在 /etc/passwd
   中加入以下这一行:

         ftp:x:30000:30000:Anonymous FTP:/export/ftp:/nosuchshell
  
   并且, 在 /etc/shadow 中加入以下这行:

         ftp:NP:6445::::::

加好了以後, 你就可以用 Anonymous 来做 FTP 了.....

如果你要一开放一个 upload 区, 可以依下列的方式做.

1. 建立一个 ~ftp/upload 的目录, 拥有者为 root , group 为 ftp 的 group
2. 将 upload 的 mod 设为 777 即可.
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50