【Solaris 建立 Anonymous FTP Server】
加入以下资料在 /etc/passwd ,这个例子选择 /export/ftp 作为 anonymous ftp area 。设定为不能看见 Shell 的內容 /nosuchshell 。
ftp:x:30000:30000:Anonymous FTP:/export/ftp:/nosuchshell
加入以下资料在 /etc/shadow
ftp:NP:6445::::::
以下shell script用來设定anonymous ftp area
把以下內容放入 /etc/ftpanonymous
#!/bin/sh
# script to setup anonymous ftp area
#
# verify you are root
/usr/bin/id | grep -w "uid=0" >/dev/null 2>&1
if [ "$?" != "0" ]; then
echo
exit 1
fi
# handle the optional command line argument
case $# in
# the default location for the anon ftp comes from the passwd file
0) ftphome="`getent passwd ftp | cut -d: -f6`"
1) if [ "$1" = "start" ]; then
ftphome="`getent passwd ftp | 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
case ${ftphome} in
/*) # ok
*) echo "$0: ftphome must be an absolute pathname"
exit 1
esac
# This script assumes that ftphome is neither / nor /usr so ...
if [ -z "${ftphome}" -o "${ftphome}" = "/" -o "${ftphome}" = "/usr" ]; then
echo "$0: ftphome must be non-null and neither / or /usr"
exit 2
fi
# If ftphome does not exist but parent does, create ftphome
if [ ! -d ${ftphome} ]; then
# lack of -p below is intentional
mkdir ${ftphome}
fi
chown root ${ftphome}
chmod 555 ${ftphome}
echo Setting up anonymous ftp area ${ftphome}
# Ensure that the /usr Directory exists
if [ ! -d ${ftphome}/usr ]; then
mkdir -p ${ftphome}/usr
fi
# Now set the ownership and modes to match the man page
chown root ${ftphome}/usr
chmod 555 ${ftphome}/usr
# Ensure that the /usr/bin directory exists
if [ ! -d ${ftphome}/usr/bin ]; then
mkdir -p ${ftphome}/usr/bin
fi
# Now set the ownership and modes to match the man page
chown root ${ftphome}/usr/bin
chmod 555 ${ftphome}/usr/bin
# this may not be the right thing to do
# but we need the bin -> usr/bin link
rm -f ${ftphome}/bin
ln -s usr/bin ${ftphome}/bin
# Ensure that the /usr/lib and /etc directorIEs exist
if [ ! -d ${ftphome}/usr/lib ]; then
mkdir -p ${ftphome}/usr/lib
fi
chown root ${ftphome}/usr/lib
chmod 555 ${ftphome}/usr/lib
if [ ! -d ${ftphome}/usr/lib/security ]; then
mkdir -p ${ftphome}/usr/lib/security
fi
chown root ${ftphome}/usr/lib/security
chmod 555 ${ftphome}/usr/lib/security
if [ ! -d ${ftphome}/etc ]; then
mkdir -p ${ftphome}/etc
fi
chown root ${ftphome}/etc
chmod 555 ${ftphome}/etc
# a list of all the commands that should be copied to ${ftphome}/usr/bin
# /usr/bin/ls is needed at a minimum.
ftpcmd="/usr/bin/ls"
# ${ftphome}/usr/lib needs to have all the libraries needed by the above
# commands, plus the runtime linker, and some name service libraries
# to resolve names. We just take all of them here.
ftplib="`ldd $ftpcmd | nawk "$3 ~ /lib/ { print $3 }" | sort | uniq`"
ftplib="$ftplib /usr/lib/nss_* /usr/lib/straddr* /usr/lib/libmp.so*"
ftplib="$ftplib /usr/lib/libnsl.so.1 /usr/lib/libsocket.so.1 /usr/lib/ld.so.1"
ftplib="`echo $ftplib | tr " " "n" | sort | uniq`"
cp ${ftplib} ${ftphome}/usr/lib
chmod 555 ${ftphome}/usr/lib/*
cp /usr/lib/security/* ${ftphome}/usr/lib/security
chmod 555 ${ftphome}/usr/lib/security/*
cp ${ftpcmd} ${ftphome}/usr/bin
chmod 111 ${ftphome}/usr/bin/*
# you also might want to have separate minimal versions of passwd and group
cp /etc/passwd /etc/group /etc/netconfig /etc/pam.conf ${ftphome}/etc
chmod 444 ${ftphome}/etc/*
# need /etc/default/init for timezone to be correct
if [ ! -d ${ftphome}/etc/default ]; then
推荐阅读
- Solaris 系统维护命令大全
- Solaris 命令格式
- Solaris 8 如何使用及编辑PostScript字体?
- Solaris Veritas安装记录
- 中文打印工具 Solaris 8 如何打印中文
- Solaris dd命令复制硬盘
- 安装 Solaris 9.0 OS 的 x86 Platform Edition 介绍
- Solaris 8 管理登录管理器
- Solaris 进程管理
- Solaris 8 如何定制您的OpenWindows工作区