#!/bin/bashset-eecho"=== 开始安装配置 vsftpd ==="# 1. 安装 vsftpdecho"[1/8] 安装 vsftpd..."apt-getupdateapt-getinstall-yvsftpd db5.3-util db-util# 2. 创建 FTP 根目录和用户echo"[2/8] 创建 FTP 目录..."mkdir-p/var/ftpuseradd-d/var/ftp-s/sbin/nologin vsftpd2>/dev/null||truechownvsftpd:vsftpd /var/ftpchmod755/var/ftp# 3. 创建虚拟用户密码文件echo"[3/8] 创建虚拟用户..."mkdir-p/etc/vsftpdcat>/etc/vsftpd/vuser_passwd.txt<<'EOF' user-zw Ghx5eEAZ user-cx Ghx5eEAZ EOF# 4. 生成数据库echo"[4/8] 生成用户数据库..."db_load-T-thash-f/etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.dbchmod600/etc/vsftpd/vuser_passwd.dbrm-f/etc/vsftpd/vuser_passwd.txt# 5. 创建 PAM 配置echo"[5/8] 配置 PAM 认证..."cat>/etc/pam.d/vsftpd_virtual<<'EOF' auth required pam_userdb.so db=/etc/vsftpd/vuser_passwd account required pam_userdb.so db=/etc/vsftpd/vuser_passwd EOF# 6. 创建用户目录echo"[6/8] 创建用户目录..."mkdir-p/var/ftp/virtual_usersforuserinuser-zw user-cx;domkdir-p/var/ftp/virtual_users/$userchownvsftpd:vsftpd /var/ftp/virtual_users/$userdone# 7. 配置 vsftpdecho"[7/8] 写入配置..."cat>/etc/vsftpd.conf<<'EOF' listen=YES listen_ipv6=NO anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 guest_enable=YES guest_username=vsftpd pam_service_name=vsftpd_virtual user_config_dir=/etc/vsftpd/user_conf pasv_enable=YES pasv_min_port=30000 pasv_max_port=31000 pasv_addr_resolve=YES chroot_local_user=YES allow_writeable_chroot=YES secure_chroot_dir=/var/run/vsftpd/empty xferlog_enable=YES xferlog_file=/var/log/vsftpd.log xferlog_std_format=YES idle_session_timeout=600 data_connection_timeout=120 max_clients=200 max_per_ip=5 EOF# 8. 创建用户配置echo"[8/8] 创建用户配置..."mkdir-p/etc/vsftpd/user_confforuserinuser-zw user-cx;docat>/etc/vsftpd/user_conf/$user<<EOF local_root=/var/ftp/virtual_users/$userwrite_enable=YES anon_umask=022 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES EOFdone# 启动服务echo"启动 vsftpd..."systemctl daemon-reload systemctlenablevsftpd systemctl restart vsftpdecho""echo"=== 安装完成 ==="systemctl status vsftpd --no-pagerecho""echo"=== 虚拟用户 ==="echo"user-zw / password123"echo"user-cx / password456"nceDiagram.htmlUbuntu系统FTP安装脚本之虚拟用户登录
张小明
前端开发工程师
LFM2.5-1.2B-Thinking-GGUF一键部署体验:对比传统源码编译部署的优势
LFM2.5-1.2B-Thinking-GGUF一键部署体验:对比传统源码编译部署的优势 1. 引言 还记得第一次部署大模型时的痛苦经历吗?下载源码、解决依赖、编译报错、配置环境...整个过程就像在玩一场没有攻略的解谜游戏。今天我们要介绍的LFM2.5-1.2B-Thinking-GGUF…
《神泣:纷争》手游官网公测预约开启,光与怒的指尖史诗,十年情怀热血重燃!
当缇奥斯大陆的风再次拂过指尖,当光之同盟与愤怒联合的战歌重新在耳畔响起,无数玩家的青春记忆在这一刻被唤醒。2026 年 4 月,正版端游授权、江苏三九互娱发行运营、怀旧星光手游平台宣传的国产移动网络游戏《神泣:纷争》正式开启…
EldenRingFPS解锁工具:彻底释放你的《艾尔登法环》游戏潜力
EldenRingFPS解锁工具:彻底释放你的《艾尔登法环》游戏潜力 【免费下载链接】EldenRingFpsUnlockAndMore A small utility to remove frame rate limit, change FOV, add widescreen support and more for Elden Ring 项目地址: https://gitcode.com/gh_mirrors/e…
LLM大模型认识
1 . 大模型原理 通过上一节AI基础认知的分析,我们知道AI产生智能的三要素分别是:算法、数据、算力。本质来说,AI的智能还是基于各种数学计算产生的。 那么问题来了:现在的AI是如何通过训练理解人类语言的呢?语言是如…
Spring Boot 缓存注解使用技巧
Spring Boot 缓存注解使用技巧:提升应用性能的利器 在现代应用开发中,缓存是提升性能的重要手段之一。Spring Boot通过简洁的缓存注解,帮助开发者轻松实现缓存功能,减少数据库压力,加快响应速度。本文将介绍几个实用的…
如何为Unity游戏实现智能翻译:XUnity.AutoTranslator完全指南
如何为Unity游戏实现智能翻译:XUnity.AutoTranslator完全指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 在全球化游戏体验的时代,语言障碍不应成为玩家享受精彩游戏的阻碍。X…