Created
September 30, 2010 11:43
-
-
Save millken/604444 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# author: koumm | |
# desc: auto vsftpd script | |
# date: 2010-07-30 | |
# version: v1.1 | |
# modify: | |
WEBROOT="/data1/htdocs/www.koumm.com" | |
FTP_PORT="3000" | |
VSFTPDROOT="/etc/vsftpd" | |
FTP_CONFIG="/etc/vsftpd/vsftpd.conf" | |
FTP_PAM="/etc/pam.d/vsftpd" | |
CURRENT_PATHS=`pwd` | |
function_vsftp() | |
{ | |
#selinux=`cat /etc/selinux/config |grep "SELINUX=" |grep -v "# SELINUX" |cut -c 9-17` | |
selinux=`sestatus | awk -F "[: ]+" '{print $3}' | sed -n '1p'` | |
if [ "$selinux" = "enabled" ]; then | |
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config | |
echo "****************************************************" | |
echo "selinux is disabled, You must reboot linux !!!" | |
echo "****************************************************" | |
echo "" | |
sleep 3 | |
fi | |
echo "" | |
echo "*****************************" | |
echo "Installing vsftpd..." | |
echo "*****************************" | |
#ftp download/upload directory in WEBROOT | |
#user could change it self | |
HTTPDUSER=`cat /etc/passwd |grep apache |awk -F ":" '{print $1}'` | |
NGINXUSER=`cat /etc/passwd |grep nginx |awk -F ":" '{print $1}'` | |
unalias cp >> /dev/null 2>&1 | |
if [ ! -d $WEBROOT ]; then | |
mkdir -p $WEBROOT | |
fi | |
#ftp vitural user | |
if [ "$HTTPDUSER" != "apache" -a "$NGINXUSER" != "nginx" ]; then | |
/usr/sbin/useradd apache -s /sbin/nologin >>/dev/null 2>&1 | |
fi | |
chown -R apache:apache $WEBROOT | |
echo "YUM install vsftpd..." | |
yum install -y vsftpd db4-utils db4 db4-devel | |
echo "*****************************" | |
echo "Configuration vsftpd..." | |
echo "*****************************" | |
mkdir -p $VSFTPDROOT/conf.d | |
#vsftpd virt l user config | |
cat > $VSFTPDROOT/conf.d/www <<end.. | |
guest_enable=YES | |
guest_username=apache | |
local_root=$WEBROOT | |
anon_world_readable_only=no | |
anon_upload_enable=yes | |
anon_mkdir_write_enable=yes | |
anon_other_write_enable=yes | |
anon_umask=022 | |
end.. | |
#default www user and password | |
cat > $VSFTPDROOT/login.txt <<end.. | |
www | |
www | |
end.. | |
#default www user and password | |
cat > $VSFTPDROOT/rebuild_ftp_user.sh <<end.. | |
/usr/bin/db_load -T -t hash -f $VSFTPDROOT/login.txt $VSFTPDROOT/db_login.db | |
end.. | |
if [ ! -x $VSFTPDROOT/rebuild_ftp_user.sh ]; then | |
chmod +x $VSFTPDROOT/rebuild_ftp_user.sh | |
$VSFTPDROOT/rebuild_ftp_user.sh | |
else | |
$VSFTPDROOT/rebuild_ftp_user.sh | |
fi | |
if [ -e $VSFTPDROOT/vsftpd.conf.save ]; then | |
cp $VSFTPDROOT/vsftpd.conf.save $FTP_CONFIG | |
/bin/sed -i "$ a\listen_port=$FTP_PORT" $FTP_CONFIG | |
/bin/sed -i '$ a\use_localtime=YES' $FTP_CONFIG | |
/bin/sed -i "$ a\user_config_dir=$VSFTPDROOT/conf.d" $FTP_CONFIG | |
else | |
cp $FTP_CONFIG $VSFTPDROOT/vsftpd.conf.save | |
/bin/sed -i "$ a\listen_port=$FTP_PORT" $FTP_CONFIG | |
/bin/sed -i '$ a\use_localtime=YES' $FTP_CONFIG | |
/bin/sed -i "$ a\user_config_dir=$VSFTPDROOT/conf.d" $FTP_CONFIG | |
fi | |
#/etc/pam.d/vsftpd | |
if [ -e /etc/pam.d/vsftpd.save ]; then | |
cp /etc/pam.d/vsftpd.save $FTP_PAM | |
/bin/sed -i '1,8 s/^/#/' $FTP_PAM | |
/bin/sed -i "$ a\auth required pam_userdb.so db=$VSFTPDROOT/db_login" $FTP_PAM | |
/bin/sed -i "$ a\account required pam_userdb.so db=$VSFTPDROOT/db_login" $FTP_PAM | |
else | |
cp $FTP_PAM /etc/pam.d/vsftpd.save | |
/bin/sed -i '1,8 s/^/#/' $FTP_PAM | |
/bin/sed -i "$ a\auth required pam_userdb.so db=$VSFTPDROOT/db_login" $FTP_PAM | |
/bin/sed -i "$ a\account required pam_userdb.so db=$VSFTPDROOT/db_login" $FTP_PAM | |
fi | |
alias cp='cp -i' | |
chkconfig vsftpd on | |
service vsftpd restart | |
cat <<end.. | |
Vsftpd completed ... | |
***************************** | |
end.. | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
说明: | |
采用虚拟用户形式,一个帐号一个目录。 | |
WEBROOT 是指定目录 | |
FTP_PORT是指定端口 | |
初始用户密码www/www | |
配置文件只是简单的处理了一下。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment