FTP上传和覆盖不会覆盖,而是创建[file.ext]。#


1

这个问题是StackOverflow一个问题的重复,建议我在这里问这个问题。如果多职位不受欢迎,我深表歉意。

FTP有一个非常奇怪的问题,正在困扰着我。这是我第一次看到此问题。

当我上传文件时,它不会覆盖原始文件,而是被重命名为[original file.ext] .1(如果[file] .1已经存在,则被重命名为[file] .2)。例如,如果服务器上存在style.css,并且我下载并编辑了它,则当我将其重新上载到位置时,它被“重命名”为style.css.1。第二次尝试将生成名为style.css.2的第三个文件。

我拥有自己的熨斗,并在上面安装了64位OpenSUSE 11.4(刚刚配置的相对较新的安装)。我正在使用pure-ftpd并使用YAST控制面板来操纵设置。特别是,Umask(umask文件:umask目录)设置为000:000(唯一的设置将使上载的文件具有与现有文件相同的权限)。我已经为所有人提供了Chrooted ftp访问,并且为了使FTP访问/ srv / www /,我使用了此站点上的说明,通过绑定操作将/ srv / www /安装在/ home / [user] / ftp /中。如此,对于非常安全的用户,FTP访问已被chroot了,但是该用户仍然可以访问/ srv / www /中的内容。

我还花了一些时间赋予/ srv / www /内容与用户本身相同的权限和user:group(即,应该没有权限问题)。

我正在使用WS_FTP Pro 2007和Notepad ++(通过NppFTP)访问该站点,并且两个客户端都存在相同的问题:我可以很好地下载文件,但是在上载文件时,它们后面会附加“。#”( .1,.2,.3等),而不是覆盖原始文件。这些新文件具有与原始文件相同的权限和所有权(user:group),所以对于上载为何创建新文件而不是覆盖文件,我一无所知。

编辑添加:此后,我尝试了几种不同的FTP客户端,包括Windows命令行中的FTP功能,最终结果相同。


这可能是FTP软件经常发生的情况-例如,考虑到您对FTP拥有FTP访问权限important-file.txt,并且一些脚本kiddy闯入并用空白文本文件覆盖了它。我的建议:编写一个cron作业以重命名这些文件中的任何一个,并每5分钟运行一次。如果您精通shell脚本,应该不会太困难。
2011年

@ new123456-在设置OpenSUSE 11.4之前,我已经在许多服务器上运行过FTP服务器。他们中没有一个人表现出这种特殊的行为。我宁愿使用一种干净优雅的解决方案,而不是一些cron-job hack。
勒内Kåbis

Answers:


1

在纯ftpd中有多个对“自动重命名”功能的引用。仅仅是关掉它吗?http://pureftpd.sourceforge.net/README

并且尽管文件名描述使这种情况看起来不太可能是ftp客户端使用STOU选项?http://www.nsftools.com/tips/RawFTP.htm

此Q + A中也可能会有帮助, FTP服务器如何处理重命名为现有文件的问题?


您让我朝着正确的方向看,尽管花了很多时间才能弄清楚这一点。对于与YAST控制面板一起使用OpenSUSE或pure-ftpd的其他用户,请注意YAST控制面板不提供此选项来进行编辑。
勒内Kåbis

我所做的(以我为例)是检查/etc/rc.d/pure-ftpd文件,其中包含对/etc/pure-ftpd/pure-ftpd.conf的引用。在第二个文件中,我发现条目AutoRename的值为yes。我将其更改为no,重新启动了纯ftpd,一切运行正常。上载的文件不再附加。#。感谢@Dennis,朝着正确的方向前进!
勒内Kåbis
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.