建启动脚本
# vi /etc/rc3.d/S83vsftpd
CODE:
#!/sbin/sh
case "$1" in
start)
/usr/local/bin/vsftpd &
;;
stop)
pkill vsftpd
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
4.用户管理case "$1" in
start)
/usr/local/bin/vsftpd &
;;
stop)
pkill vsftpd
;;
*)
echo "Usage: $0 { start | stop }"
exit 1
;;
esac
exit 0
手工添加用户
# useradd -d /dev/null -g ftp -s /bin/false test
设置密码
# passwd test
在/etc/vsftpd/下添加一个与用户名相同名字的文件
# vi /etc/vsftpd/test
若只允许下载,则添加如下内容
anon_world_readable_only=no
anon_max_rate=512000
若允许上传,则添加如下内容
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_max_rate=1024000
追加新增的用户test到/etc/vsftpd.user_list文件
# echo "test">;>; /etc/vsftpd.user_list
建立test用户的ftp主目录
# mkdir /data/ftp/test
# chown ftp:ftp /data/ftp/test
5.用户管理脚本
方便添加、删除用户、修改用户密码
安装脚本运行需要的软件包:
# wget ftp://mirror.sprintlink.net/sunfreeware.com/pub/freeware/sparc/9/tcl-8.4.6-sol9-sparc-local.gz
# gunzip tcl-8.4.6-sol9-sparc-local.gz
# pkgadd -d tcl-8.4.6-sol9-sparc-local
# wget
ftp://mirror.sprintlink.net/sunfreeware.com/pub/freeware/sparc/9/tk-8.4.6-sol9-sparc-local.gz
# gunzip tk-8.4.6-sol9-sparc-local.gz
# pkgadd -d tk-8.4.6-sol9-sparc-local
# wget
ftp://mirror.sprintlink.net/sunfreeware.com/pub/freeware/sparc/9/expect-5.40-sol9-sparc-local.gz
# gunzip expect-5.40-sol9-sparc-local.gz
# pkgadd -d expect-5.40-sol9-sparc-local
setpasswd.exp
CODE:
#! /usr/local/bin/expect -f
#username is passed as 1st arg,password as 2nd
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
expect "*Password:"
send "$password\r"
expect "*Password:"
send "$password\r"
expect eof
ftpuseradd#username is passed as 1st arg,password as 2nd
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
expect "*Password:"
send "$password\r"
expect "*Password:"
send "$password\r"
expect eof
CODE:
#!/sbin/sh
# ftpuseradd
usage()
{
echo "Usage: `basename $0` [-w] [-m maxrate] username password"
exit 1
}
WRITABLE="no" # can't upload
MAXRATE="64000" # default max rate is 64Kb
OPT="no"
while getopts :wm: OPTION
do
case $OPTION in
w) WRITABLE="yes"
OPT="yes"
;;
m) MAXRATE=$OPTARG
OPT="yes"
;;
\?) usage
;;
esac
done
shift `expr $OPTIND - 1`
if [ $# -ne 2 ]
then
usage
fi
USERNAME=$1
PASSWORD=$2
useradd -d /dev/null -g ftp -s /bin/false $USERNAME
if [ $? -eq 0 ]
then
setpasswd.exp $USERNAME $PASSWORD >; /dev/null
echo "anon_world_readable_only=NO" >; /etc/vsftpd/$USERNAME
echo "anon_max_rate=$MAXRATE" >;>; /etc/vsftpd/$USERNAME
if [ "$WRITABLE" = "yes" ]
then
echo "write_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_upload_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_mkdir_write_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_other_write_enable=YES" >;>; /etc/vsftpd/$USERNAME
fi
echo "$USERNAME" >;>; /etc/vsftpd.user_list
mkdir /data/ftp/$USERNAME
chown ftp:ftp /data/ftp/$USERNAME
fi
# ftpuseradd
usage()
{
echo "Usage: `basename $0` [-w] [-m maxrate] username password"
exit 1
}
WRITABLE="no" # can't upload
MAXRATE="64000" # default max rate is 64Kb
OPT="no"
while getopts :wm: OPTION
do
case $OPTION in
w) WRITABLE="yes"
OPT="yes"
;;
m) MAXRATE=$OPTARG
OPT="yes"
;;
\?) usage
;;
esac
done
shift `expr $OPTIND - 1`
if [ $# -ne 2 ]
then
usage
fi
USERNAME=$1
PASSWORD=$2
useradd -d /dev/null -g ftp -s /bin/false $USERNAME
if [ $? -eq 0 ]
then
setpasswd.exp $USERNAME $PASSWORD >; /dev/null
echo "anon_world_readable_only=NO" >; /etc/vsftpd/$USERNAME
echo "anon_max_rate=$MAXRATE" >;>; /etc/vsftpd/$USERNAME
if [ "$WRITABLE" = "yes" ]
then
echo "write_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_upload_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_mkdir_write_enable=YES" >;>; /etc/vsftpd/$USERNAME
echo "anon_other_write_enable=YES" >;>; /etc/vsftpd/$USERNAME
fi
echo "$USERNAME" >;>; /etc/vsftpd.user_list
mkdir /data/ftp/$USERNAME
chown ftp:ftp /data/ftp/$USERNAME
fi
![nixsky[www.nixsky.com]](/templets/images/toplogo.gif)

