ubuntu

Ubuntu FTP服务器脚本应用

小樊
38
2025-07-12 09:07:49
栏目: 云计算

在Ubuntu上设置FTP服务器可以通过多种方法实现,包括手动配置和使用脚本。以下是详细的步骤和一些示例脚本:

手动配置步骤

  1. 安装vsftpd

    sudo apt update
    sudo apt install vsftpd
    
  2. 配置vsftpd

    • 备份配置文件:
      sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
      
    • 编辑配置文件:
      sudo nano /etc/vsftpd.conf
      
    • 修改以下配置项:
      anonymous_enable=NO
      local_enable=YES
      write_enable=YES
      chroot_local_user=YES
      allow_writeable_chroot=YES
      pasv_enable=YES
      pasv_min_port=50000
      pasv_max_port=50100
      
  3. 创建FTP用户

    sudo adduser ftpuser
    sudo passwd ftpuser
    
  4. 配置防火墙

    sudo ufw allow 21/tcp
    sudo ufw allow 20/tcp
    sudo ufw enable
    
  5. 重启vsftpd服务

    sudo systemctl restart vsftpd
    
  6. 测试FTP服务器: 使用FTP客户端(如FileZilla)连接到服务器,输入以下信息进行连接:

    • 主机:你的服务器IP地址
    • 用户名:ftpuser
    • 密码:在创建用户时设置的密码
    • 端口:21

自动化脚本示例

以下是一个使用Python的pyftpdlib库创建FTP服务器的简单脚本示例:

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer

def main():
    authorizer = DummyAuthorizer()
    authorizer.add_user('user', '12345', '/home/user', perm='elradfmwMT')
    handler = FTPHandler
    handler.authorizer = authorizer
    address = ('0.0.0.0', 21)
    server = FTPServer(address, handler)
    server.serve_forever()

if __name__ == "__main__":
    main()

将上述代码保存为ftp_server.py,然后在终端中运行:

pip install pyftpdlib
python ftp_server.py

这将启动一个FTP服务器,监听所有网络接口上的21端口。

使用Shell脚本自动化配置

以下是一个自动化配置脚本示例:

#!/bin/bash

# 更新系统包列表
sudo apt-get update

# 安装vsftpd
sudo apt-get install -y vsftpd

# 备份原始的vsftpd配置文件
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

# 修改vsftpd配置文件
cat <<EOF | sudo tee /etc/vsftpd.conf
local_enable=YES
write_enable=YES
pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100
anonymous_enable=NO
chroot_local_user=YES
allow_writeable_chroot=YES
EOF

# 创建用户列表文件并添加用户
echo "testuser" | sudo tee /etc/vsftpd.userlist
sudo adduser testuser
sudo passwd testuser

# 重启vsftpd服务以应用更改
sudo systemctl restart vsftpd

echo "FTP服务器已配置完成。"
echo "请使用以下信息访问FTP服务器:"
echo "用户名: testuser"
echo "密码: $(grep 'testuser' /etc/shadow | cut -d':' -f2)"

将上述脚本保存为setup_ftp.sh,赋予执行权限并运行:

chmod +x setup_ftp.sh
sudo ./setup_ftp.sh

通过这些步骤和脚本,你可以在Ubuntu上快速设置和管理FTP服务器。

0
看了该问题的人还看了