我在 Debian(Raspberry Pi)上安装了 pure-ftpd,找到了配置文件并设法进行了基本配置,禁止匿名登录,创建虚拟用户,调用pure-pw mkdb
并重新启动服务器。但我无法使用此用户登录。
相反,我可以使用普通 Linux 用户登录。
我想拒绝普通用户并只接受虚拟用户。
我发现我应该使用指定应接受哪些登录的参数来启动服务器-l
。这听起来很棒 - 如果我能够找到服务器启动的位置就好了。在 init.d 和其他已知(对我而言)的地方中没有任何东西可以自动启动守护进程。据我所知,我没有执行任何操作来激活守护进程,这一定是在安装过程中发生的。
如果有人能告诉我 pure-ftpd 在哪里启动,也许这可以解决我的两个问题。
我想知道为什么很多东西可以在配置文件中配置,但像接受哪些用户这样的基本配置必须以完全不同的方式来设置。原因是什么?
对于只接受与系统用户无关的专用用户的 ftp 服务器来说,pure-ftpd 不是最好的选择吗?
为什么选择 FTP?
我想将图像从我的智能手机传输到内部网络中的 Raspberry Pi,而不能从外部访问。因此 FTP 似乎是一个不错的选择,尤其是因为我期望一个被描述为“为安全而设计”的服务器也能提供加密传输。
在原始配置下,它似乎对每个 Linux 用户开放,这让我有点怀疑它的安全性。
为什么是这个 FTP 服务器?
我也尝试过其他 FTP 服务器,但我不喜欢它们与普通用户绑定。我不想添加系统用户并为他们分配主目录。我只想添加两个可以访问一个目录并以该目录用户的身份保存文件的 FTP 用户。我(还)不确定这是否可行,我正在一步一步地进行,目前我正停留在虚拟用户上。
文档不难找到,但大多数文档对我来说似乎不完整。在这种情况下,它们都告诉如何添加虚拟用户,但我不得不搜索一段时间,直到我发现我必须激活它。但没有关于在哪里激活它的评论。
就是这么写的。一般来说,“为什么 XYZ 软件可以做 A,而不是技术上同样可行的 B?”的答案就像“为什么作者把他的书写成了 A,而不是 B”:这是一个有意识或无意识的决定,没有人能够用该软件做 B。
在这种情况下,这是一个设计决策(我不同意,但您选择 pure-ftpd 可能正是因为他们的设计决策):
所以,这就是为什么上游 pure-ftpd 端的一个配置文件中的内容不一致的原因。
必须添加命令行选项才能完成您想要的操作(这显然是错误的,但只有那些必须打包软件并帮助成千上万的用户运行软件的人才能理解,而软件作者自己却不明白)是一个坏主意;因此,在 debian 中,使用了“包装器” PERL 脚本,该脚本读取其自己的配置文件,然后根据用户的需要调用 pure-ftpd。
它从 /etc/init.d/pure-ftpd 启动,它是 pure-ftpd-common debian 软件包的一部分,如果您正确安装了 pure-ftpd(即通过操作系统的软件包管理器
apt install pure-ftpd
),您应该已经获得了该软件包。如果您没有通过该软件包安装它,那么您可以设置自己的守护进程启动机制!(不要这样做。使用发行版软件包。)该脚本是 /usr/bin/pure-ftpd-wrapper(一开始可能会读取可用的配置选项,但不要修改它!),它会读取 /etc/pure-ftpd/conf 目录中的所有文件以进行常规配置,并读取 /etc/pure-ftpd/auth 中的所有文件以进行身份验证配置。因此,您会在 /etc/pure-ftps/{conf,auth} 中找到 /usr/bin/pure-ftpd-wrapper 中提到的设置作为文件名。
我认为这是否构成了“易于使用的 FTP 服务器”?不。但如果您确实需要 FTP(老实说,我不是 FTP 服务器专家),它可能仍然是一个明智的选择;人们通常更喜欢(至少根据我在这里看到的帖子,我的经验)ProFTP 或 vsftp。我个人认为现在是 2024 年了,我看到 FTP 在重要部署中的唯一用途是恶意软件和盗版软件分发,因此,我认为如果您要使用虚拟用户进行复杂的设置, FTP可能太过 1970 年代,无法满足您的需求,您最好使用 SFTP / webdav / S3 兼容协议……这些协议不会拖延五十年的兼容性(FTP 实际上比互联网还要古老。它比互联网协议早三年)。我认为即使是 SMB 也会更明智,而且现在可以通过正确加密和保护在互联网上工作。与 FTP 不同的是,所有这些协议都支持适当的编码支持、支持继续中断的传输、更好的目录列表……