找回密码
 新建账号

filezilla 服务由于下列服务特定错误而终止: 函数不正确。

[复制链接]
php 发表于 2024/4/27 03:23 | 显示全部楼层 |阅读模式
filezilla 服务由于下列服务特定错误而终止: 函数不正确。
  1. > net start filezilla
  2. filezilla 服务已经启动成功。
复制代码
FileZilla Server 1.8.2 启动成功,但 filezilla-server.exe 马上又关闭了,找不到 filezilla-server.exe 进程。
Windows 事件查看器中的事件日志如下
  1. 日志名称:          System
  2. 来源:            Service Control Manager
  3. 日期:            2024/4/27 1:57:33
  4. 事件 ID:         7024
  5. 任务类别:          无
  6. 级别:            错误
  7. 关键字:           经典
  8. 用户:            暂缺
  9. 计算机:           WUXIANCHENG
  10. 描述:
  11. filezilla 服务由于下列服务特定错误而终止:
  12. 函数不正确。
  13. 事件 Xml:
  14. <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  15.   <System>
  16.     <Provider Name="Service Control Manager" Guid="{555908d1-a6d7-4695-8e1e-26931d2012f4}" EventSourceName="Service Control Manager" />
  17.     <EventID Qualifiers="49152">7024</EventID>
  18.     <Version>0</Version>
  19.     <Level>2</Level>
  20.     <Task>0</Task>
  21.     <Opcode>0</Opcode>
  22.     <Keywords>0x8080000000000000</Keywords>
  23.     <TimeCreated SystemTime="2024-04-26T17:57:33.913438500Z" />
  24.     <EventRecordID>237895</EventRecordID>
  25.     <Correlation />
  26.     <Execution ProcessID="548" ThreadID="3032" />
  27.     <Channel>System</Channel>
  28.     <Computer>WUXIANCHENG</Computer>
  29.     <Security />
  30.   </System>
  31.   <EventData>
  32.     <Data Name="param1">filezilla</Data>
  33.     <Data Name="param2">%%1</Data>
  34.     <Binary>660069006C0065007A0069006C006C0061000000</Binary>
  35.   </EventData>
  36. </Event>
复制代码
Windows 报出的错误是“服务由于下列服务特定错误而终止: 函数不正确。”,但实际上真正的原因可能并不是函数不正确。
FileZilla Server 升级到 1.8.2 之前都没有这个问题,升级以后就启动不起来了,FileZilla 官方网站在发布 FileZilla Server 1.8.2 的新闻里面写了这样一句话
  1. FileZilla Server now requires that the configuration directory is owned either by the operating system user account the server runs under, or a more privileged user (SYSTEM, Amdministrators, TrustedInstaller on Windows, root elsewhere)
复制代码
从 FileZilla Server 1.8.2 开始,FileZilla Server 配置目录的所有者必须是运行 FileZilla Server 的操作系统用户或拥有更高权限的用户。但改变不止这一点。

在 Windows 上,如果使用从官方下载的 FileZilla Server 安装程序来安装 FileZilla Server,服务会以 SYSTEM 账号运行,SYSTEM 账号权限太大,有很大的风险,建议尽量不要以 SYSTEM 身份运行服务,尤其是第三方程序,FileZilla Server 安装程序可以使用 7-zip 等压缩软件解压缩,然后通过 cmd 的 sc create 命令或者 PowerShell 的 New-Service 来人工创建服务,创建服务时可以指定一个 Windows 普通账号来运行 FileZilla Server 服务,可以使用 --config-dir 参数来指定 FileZilla Server 的配置目录。

普通账号运行服务,确实很安全,但也会带来一些问题,尤其是权限问题,通常是不够导致程序运行不起来,或者无法保存数据到磁盘文件中。

运行服务的普通账号,必须有“作为服务登录“的权限,这要在组策略里面设置,或者使用命令行程序 secedit.exe 修改。

要以普通账号运行 FileZilla Server 服务,运行服务的用户需要对 filezilla-server.exe 等可执行文件有读和执行权限,需要对配置目录及配置目录中的文件至少有读和写权限,如果启用了 FileZilla Server 的日志记录功能,还要对日志目录及文件有相应的权限,在 FileZilla Server 1.8.2 之前,对中间目录没有权限也不影响程序运行,从 FileZilla Server 1.8.2 开始,需要对 filezilla-server.exe 所在的目录及每一层上级目录都至少有读权限,否则就会出现“服务由于下列服务特定错误而终止: 函数不正确。”的错误。

在 Windows 上,使用 icacls 赋予或者撤销 NTFS 权限。
  1. icacls C:\server\filezilla\ /grant wuxiancheng:R
复制代码
其中 C:\server\filezilla 是 FileZilla Server 程序目录,wuxiancheng 是运行 FileZilla Server 的 Windows 账号名,要根据实际情况改写。R 代表读权限,具体用法可以参考官方文档或运行以下命令查看内建使用说明。
  1. icacls /?
复制代码
相关链接 icacls filezilla

手机版|轻松E站

GMT+8, 2024/5/19 06:39

快速回复 返回顶部 返回列表