小弟為了要讓別人能夠利用 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 即可.