#!/bin/bash
SITEROOT=/home/www/
install(){
vsftp_info=`yum list installed | grep vsftp`
if [[ ! -z $vsftp_info ]]
then
echo -n "vsftp_version:"
echo $vsftp_info | awk '{print $2}'
exit 0
else
echo "Vsftpd not installed"
fi
yum install vsftpd -y
echo "创建用户文件目录"
mkdir -p /etc/vsftpd/user_conf/
echo "创建www用户"
useradd -s /sbin/nologin www
echo "备份主配置文件vsftpd.conf"
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
echo "生成主配置文件vsftpd.conf"
cat > /etc/vsftpd/vsftpd.conf << EOF
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/vsftpdlog
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=www
user_config_dir=/etc/vsftpd/user_conf
virtual_use_local_privs=YES
log_ftp_protocol=YES
syslog_enable=NO
pasv_min_port=2222
pasv_max_port=2322
EOF
echo "开始配置PAM认证配置文件"
echo "备份PAM配置文件vsftpd"
cp /etc/pam.d/vsftpd /etc/pam.d/vsftpd.bak
cat > /etc/pam.d/vsftpd << EOF
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
EOF
}
user(){
if [[ ! -z `grep $1 /root/vsftp.db` ]]
then
echo "用户已存在"
passwd=`sed -nr '/test/{n;p}' vsftp.db`
echo "查询到此账号的信息"
echo "username:"$1
echo "passwd:"$passwd
exit 0
fi
echo "用户不存在,开始创建"
echo $1 >> /root/vsftp.db
passwd=`< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c16`
echo "此账号信息"
echo $passwd >> /root/vsftp.db
echo "username:"$1
echo "passwd:"$passwd
echo "写入账号信息到db文件"
db_load -T -t hash -f /root/vsftp.db /etc/vsftpd/vsftpd_login.db
echo "生成用户配置文件"
sitedir="local_root="$SITEROOT$1
echo $sitedir > /etc/vsftpd/user_conf/$1
echo "加入用户到chroot配置文件"
echo $1 >> /etc/vsftpd/chroot_list
if [[ ! -d $sitedir ]]
then
echo $sitedir"不存在,请注意是否用户信息是否正确"
fi
}
case "$1" in
user)
user ${2}
;;
install)
install
;;
*)
echo $"Usage: $0 {user|install}"
exit 2
esac
脚本安装vsftpd
最新推荐文章于 2024-07-26 19:28:33 发布