yum -y install vsftpd
mkdir /etc/vsftpd/vuser_conf
cat /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
chroot_list_enable=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
pasv_enable=YES
pasv_min_port=5000
pasv_max_port=6000
pasv_promiscuous=NO
cat /etc/vsftpd/vuser_passwd.txt
liuly //用户名
1234567 //密码
db_load –T –t hash –f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
cat /etc/pam.d/vsftpd
#session optional pam_keyinit.so force revoke
#auth requiredpam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
#auth requiredpam_shells.so
#auth includepassword-auth
#account includepassword-auth
#session required pam_loginuid.so
#session includepassword-auth
auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd
account required pam_userdb.so db=/etc/vsftpd/vuser_passwd
cat /etc/vsftpd/vuser_conf/liuly
local_root=/data/liuly
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
/etc/init.d/vsftpd restart
PS:
增加用户
#!/bin/bash
if [ "$#" -ne 1 ]; then
echo "./$0 USER"
exit 1
fi
USER=$1
WORKDIR=/etc/vsftpd
USERFILE=$WORKDIR/vuser_passwd.txt
USERCONF=$WORKDIR/vuser_conf/$USER
grep -q -w "$USER" $USERFILE
if [ "$?" -eq 0 -o -d "/data/$USER" ]; then
echo "ERROR: $USER already exist!"
exit 1
fi
mkdir -p /data/$USER
chown -R ftp:ftp /data/$USER
cat > $USERCONF << EOF
local_root=/data/$USER
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF
python=`which python`
password_script="create_passwd.py"
password=$($python $password_script)
echo "$USER" >> $USERFILE
echo "$password" >> $USERFILE
db_load=`which db_load`
$db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db
/etc/init.d/vsftpd restart
echo
echo "ftp_ip : project.ftp.xinghegame.com"
echo "ftp_user : $USER"
echo "ftp_password: $password"
echo "ftp_port : 21"
#!/usr/bin/env python
import random
import string
def create_password(lenth=16):
s = string.letters + string.digits + '!@#$%^&*_+'
passwd = ''.join(random.sample(s, lenth))
return passwd
print create_password()
脚本同步ftp目录及文件
#!/bin/bash
FTPHost="xxxxxx"
FTPUser="ftp"
FTPPasswd="xxxxxx"
LocalDir="/data/package/xxx/resource/xxx/GamePack" #本地目录
RemoteDir="/update/xxx/GamePack" #远程ftp目录
# function start, Not nedd to edit!!!
#/usr/bin/svn cleanup ${LocalDir} && /usr/bin/svn update ${LocalDir}
/usr/bin/lftp << EOF
open ftp://${FTPUser}:${FTPPasswd}@${FTPHost}
mirror -R -x ^\.svn/$ -x .svn ${LocalDir} ${RemoteDir}
quit
EOF