linux下自动创建vsftpd脚本,并且定期修改指定用户密码

发布于 2022-10-15 06:02:29 字数 5274 浏览 16 评论 0

#!/bin/sh
#write by kevin
#date 2011-05-04
#using for CentOS_32

###########make install vsftpd-pam#################
yum -y install db4 db4-utils db4-devel
wget ftp://vsftpd.beasts.org/users/cevans/vsftpd-2.3.4.tar.gz
tar xfz vsftpd-2.3.4.tar.gz
cd vsftpd-2.3.4
make clean
sed -i 's/undef/define/g' builddefs.h
make
install -m 755 vsftpd /usr/local/sbin/vsftpd-pam
install -m 644 vsftpd.8 /usr/share/man/man8
install -m 644 vsftpd.conf.5 /usr/share/man/man5
install -m 644 vsftpd.conf /etc/vsftpd-pam.conf
###################################################

set -x
if [ "$i" == "" ];then
length=20
else
length=$i
fi

############configure of login###########
cat>>/home/logins.txt<<EOF
ftpuser
admin@2010.com
ftpadmin
admin@2010.com
EOF
#########################################
echo -e "===============================================\n\n"
echo -e "The logins.txt is configured ok \n\n"
echo -e "===============================================\n\n"

ftp_pwd_file="/data/path/auto_change_pwd.txt"
mkdir -p /data/path
touch $ftp_pwd_file
chmod 600 $ftp_pwd_file
ip_last=`/sbin/ifconfig eth0|grep "inet addr"|awk '{print $2}'|awk -F ":" '{print $2}'|cut -d \. -f3-4`
update_time=`date +"%Y-%m-%d %H:%M:%S"`
echo "$ip_last:" >$ftp_pwd_file
echo "Update_time: $update_time" >> $ftp_pwd_file
echo "====================================================" >>$ftp_pwd_file
login_file=/home/logins.txt
sed -i '$d' $login_file
ftp_pwd=`tr -dc _A-Z-a-z#$%^*-0-9 </dev/urandom |head -c${length}`
echo $ftp_pwd >> $login_file
db_load -T -t hash -f /home/logins.txt /etc/vsftpd_login.db
chmod 600 /etc/vsftpd_login.db
for i in `sed -n '3p' $login_file`
do
if [ $? == 0 ];then
echo -e "$i\t\t\t${ftp_pwd}">> $ftp_pwd_file
echo "==================================================" >> $ftp_pwd_file
else
echo -e "change passwd for $i error" >> $ftp_pwd_file
fi
done
cat>> /etc/pam.d/ftp<<EOF
auth        required        /lib/security/pam_userdb.so db=/etc/vsftpd_login
account        required        /lib/security/pam_userdb.so db=/etc/vsftpd_login
EOF
useradd -d /home/vsftpd -s /sbin/nologin vsftpd
mkdir /etc/vsftpd_user_conf/
for N in `sed -n 'p;n' $login_file`
do
mkdir /home/vsftpd/$N
cat >>/etc/vsftpd_user_conf/$N<<EOF
local_root=/home/vsftpd/$N
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
EOF
chmod -R 700 /home/vsftpd/$N
chown -R vsftpd.vsftpd /home/vsftpd/$N
done

cat >>/etc/vsftpd-pam.conf<<EOF
listen=YES
listen_port=6006
connect_from_port_20=NO
pasv_max_port=6000
pasv_min_port=5000
tcp_wrappers=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=NO

dirmessage_enable=YES
message_file=/etc/.message

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
guest_enable=YES
guest_username=vsftpd
virtual_use_local_privs=YES
pasv_enable=YES
local_max_rate=2097152
#max_clients=50
max_clients=100
max_per_ip=2
anon_world_readable_only=NO
user_config_dir=/etc/vsftpd_user_conf

#user_acl_list
#userlist_file=/etc/vsftpd.user_list
#userlist_enable=YES
#userlist_deny=NO

xferlog_enable=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
use_localtime=YES
EOF

cat >>/etc/.message<<EOF
Welcome to Teasure's FTP Website.You can upload and download things that you like!
EOF

cat >>/etc/vsftpd.chroot_list<<EOF
ftpuser
ftpadmin
EOF

#start vsftpd
/usr/local/sbin/vsftpd-pam /etc/vsftpd-pam.conf &
echo -e "================================================"
echo -e "service vsfptd-pam is start\n\n"
echo -e "You can visit your FTP websit: ftp://ftpuser@localhost:6006/,\nif there are some questions,Please contact me : ITsupp@yeah.net.\n\n"
echo -e "================================================"

exit 0

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

眼眸 2022-10-22 06:02:29

呵呵!学习了,不错的脚本

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文