温馨提示×

Ubuntu FTP Server如何自定义脚本

小樊
50
2025-09-15 13:08:03
栏目: 智能运维

在Ubuntu上自定义FTP Server(以vsftpd为例)脚本,可通过以下方式实现:

一、自定义命令脚本

  1. 安装vsftpd

    sudo apt update && sudo apt install vsftpd
    
  2. 启用自定义命令功能
    编辑配置文件 /etc/vsftpd.conf,添加:

    local_enable=YES
    write_enable=YES
    custom_commands_enable=YES
    custom_commands_script=/etc/vsftpd/custom_commands.sh  # 指定自定义命令脚本路径
    
  3. 创建自定义命令脚本

    sudo nano /etc/vsftpd/custom_commands.sh
    

    示例内容(如执行mycommand时输出信息):

    #!/bin/bash
    case "$1" in
        mycommand)
            echo "Custom command executed by $USER at $(date)" >> /var/log/vsftpd_custom.log
            ;;
        *)
            echo "Unknown command"
            ;;
    esac
    

    赋予执行权限:

    sudo chmod +x /etc/vsftpd/custom_commands.sh
    
  4. 重启服务生效

    sudo systemctl restart vsftpd
    

    客户端连接后输入mycommand即可触发脚本。

二、事件触发脚本(如上传、登录)

  1. 文件上传后执行脚本
    /etc/vsftpd.conf中添加:

    post_upload_script=/path/to/upload_script.sh
    

    脚本示例(移动上传文件并记录日志):

    #!/bin/bash
    mv "$1" "/path/to/processed/$1"
    echo "File $1 uploaded and processed at $(date)" >> /var/log/vsftpd_upload.log
    
  2. 用户登录时执行脚本
    /etc/vsftpd.conf中添加:

    login_script=/path/to/login_script.sh
    

    脚本示例(记录登录时间):

    #!/bin/bash
    echo "User $USER logged in at $(date)" >> /var/log/vsftpd_login.log
    

三、注意事项

  • 权限安全:确保脚本仅允许必要用户执行,避免敏感操作暴露。
  • 路径配置:脚本路径需使用绝对路径,避免相对路径解析错误。
  • 日志监控:建议将脚本执行结果记录到日志文件,便于排查问题。

参考来源:

0