我需要 Linux (CentOS 5.5) 上的基本 FTP 服务器,没有任何安全措施,因为服务器和客户端位于测试 LAN 上,未连接到网络的其余部分,该网络本身在 NAT 防火墙后面使用不可路由的 IP没有对 FTP 的传入访问。
有些人推荐Vsftpd 而不是PureFTPd或ProFTPd。无论我尝试什么,我都无法允许匿名用户(即以“ftp”或“匿名”身份登录并输入任何字符串作为密码)上传文件:
# yum install vsftpd
# mkdir /var/ftp/pub/upload
# cat vsftpd.conf
listen=YES
anonymous_enable=YES
local_enable=YES
write_enable=YES
xferlog_file=YES
#anonymous users are restricted (chrooted) to anon_root
#directory was created by root, hence owned by root.root
anon_root=/var/ftp/pub/incoming
anon_upload_enable=YES
anon_mkdir_write_enable=YES
#chroot_local_user=NO
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list
chown_uploads=YES
Run Code Online (Sandbox Code Playgroud)
当我从客户端登录时,这是我得到的:
500 OOPS:无法更改目录:/var/ftp/pub/incoming
我也试过“#chmod 777 /var/ftp/incoming/”,但得到同样的错误。
有人知道如何以最低安全性配置 Vsftpd 吗?
谢谢你。
编辑:SELinux 被禁用,这里是文件权限:
# cat /etc/sysconfig/selinux
SELINUX=disabled
SELINUXTYPE=targeted
SETLOCALDEFS=0
# sestatus …Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个 Coldfusion 服务器来接受大文件的上传,但我遇到了一些限制。这是我迄今为止观察到的:
ColdFusion Administrator 中有两个限制上传大小的设置:“发布数据的最大大小”和“请求限制内存”。如果您的上传大小(包括 HTTP 开销)大于这些设置之一,则上传将被拒绝。我不明白为什么我们需要其中的两个;据我所知,无论哪个设置得更高都没有任何影响。较低者获胜。
当有人尝试上传太大的文件时,他们不会收到很好的错误消息。在发送大约 1 个 TCP 窗口的数据后,上传会永远挂起。它以一种非常糟糕的方式挂起。即使在客户端放弃并断开连接后,关联的 apache 线程仍然被占用(我可以使用 mod_status 看到这一点)。卡住的线程会不断增加,直到没有剩余的线程可以接受新请求并且必须重新启动服务器。
“请求限制”是我真的不明白的事情。所有关于它的文档都将其称为内存区域的大小。如果是这样,那么我看不出它与文件大小的关系。它暗示了一些我只是不想相信的事情:ColdFusion 在将任何文件写入磁盘之前将整个上传的文件放入内存中。当上传循环(读取中等大小的块,将其写入磁盘,重复直到完成)如此简单时,没有理智的人会这样做。(我知道 HTTP multipart/form-data post 的结构使它有点困难,但是......肯定像 Adobe 这样拥有 Web 开发产品的大公司可以做到这一点......他们不是吗?)
如果整个文件 slurping 真的发生了,他们如何期望我们选择一个可行的大小限制?允许一个千兆字节,几个同时使用的用户甚至无需尝试就可以使您的服务器内存不足。而什么是我们要做的事情,不是让技嘉上传?人们有视频要发布而没有时间编辑它们!
附加信息
这是一些版本号。
网络服务器:
Server: Apache/2.2.24 (Win64) mod_jk/1.2.32
Run Code Online (Sandbox Code Playgroud)
冷聚变:
Server Product ColdFusion
Version ColdFusion 10,285437
Tomcat Version 7.0.23.0
Edition Enterprise
Operating System Windows Server 2008 R2
OS Version 6.1
Update Level /E:/ColdFusion10/cfusion/lib/updates/chf10000011.jar
Adobe Driver Version 4.1 (Build 0001)
Run Code Online (Sandbox Code Playgroud)
附加信息#2
我不知道你为什么想知道我在限制字段中放入了哪些值,但它们都设置为 200 MB 有一段时间了。我将“发布数据的最大大小”增加到 2000 MB,但没有效果。我已经发现,如果我将“请求节流内存”增加到 2000 MB,它将允许更大的上传。我在这里寻找的不是一个快速的“在那里填充更大的数字!” 答案,但详细解释了这些设置的实际含义以及它们对服务器内存使用的影响。
为什么服务器线程永远停止而不是在超出限制时返回错误消息可能是另一个问题。我认为这将是一个众所周知的问题。也许我应该先问问其他人是否可以复制它。我从未见过从 …
标题说明了一切。我需要 Tomcat 的 webdav servlet 来创建具有 rw-rw-r-- 权限的文件,但它一直将其创建为 rw-r--r--。我试图在 /etc/profile 中设置 umask,但它没有帮助(尽管手动创建的新文件具有所需的权限设置)。根据 /etc/passwd,运行 Tomcat 的用户将 /etc/false 作为 shell,并且在他的主目录中没有 bashrc。主机操作系统是 Debian。
我有一个在 IIS 上运行的 ISAPI 应用程序,该应用程序旨在支持上传任何大小的文件。在一台服务器上,使用 HTTPS 时,上传似乎随机失败413 Request Entity Too Large或超时,唯一的补救措施似乎是设置uploadReadAheadSize为大于上传文件的值。然而,这会将上传文件的大小限制为 2GB( 的最大值uploadReadAheadSize),这是不可接受的。
uploadReadAheadSize在安装了相同应用程序并且设置为默认值(49152 字节)的任何其他服务器(并且有很多服务器)上都不会出现此问题。可能是什么原因导致这个问题,我应该如何调试这个问题?
(注意:我在 StackOverflow 和此处看到了几个类似的问题,但在这些情况下,要么要使用客户端证书,要么应用程序基于 WCF(我们的不是),或者问题不独立于uploadReadAheadSize或传输层安全)
uploadReadAheadSize另外,什么是了解实际情况以及“幕后”发生的事情的良好来源?微软的官方文档相当稀疏。
我正在为受信任的用户寻找通过 html 表单(可能涉及 php)上传 pdf 文件的方法。这是一个非常标准的 ubuntu linux 服务器,带有 apache 2.x 和 php 5。
我想知道 apache 文件上传模块有什么好处。有一段时间没有更新了,是否积极维护?与没有这个模块的 apache 2 的传统 php 上传相比有什么优势?
http://commons.apache.org/fileupload
我记得传统的 php 文件上传很困难,有一些陷阱,apache 文件上传模块会改善这种情况吗?
我正在寻找的解决方案将成为现有网站的一部分,并集成到管理 Web 前端。我没有考虑的事情是 webdav、ssh、ftp、ftps、ftp over ssh。应该使用浏览器并且无需安装特殊的客户端软件,所以我询问基于浏览器的上传而无需特殊的客户端要求。我可以向用户请求像 Firefox >= 3.5 这样的现代浏览器或像 chrome 或 safari 这样的现代 webkit broser。
我需要将目录 /home/test 的全部内容上传到我的 ftp 服务器的特定文件夹中。 然后我将通过 cron 每小时安排一次脚本。有什么例子吗?
注意。考虑到我使用的是 Netgear ReadyNAS Duo(一个 debian 机器)并且我无法安装 lftp 或类似软件,只能安装标准命令 :)
符号链接是 Linux 上的一种普遍做法,它可以使资源(例如目录)在另一个位置可用,而无需维护它的多个副本。这在许多应用程序中实现,例如具有资源树和用户目录树:每当用户打算使用某个资源时,符号链接被放置到他或她有权访问的目录中。给定足够的权限,他或她可以使用资源(在其中创建文件),该资源可以物理地写入不同的位置,例如在具有足够空间的设备上。如果用户使用 Samba 访问他的主目录,这可以正常工作。
但是,有充分的理由改用 WebDAV,端口问题就是其中之一。将此类应用程序移植到 WebDAV 时的问题:Apache 的 mod_dav 是以一种不会公开符号链接的方式编写的,无论是否设置了 FollowSymLinks。这种行为是社区有意的,因此从未解决过错误报告。
但是,如何将所需的行为移植到 WebDAV?我尝试改用硬链接,但硬链接目录似乎根本不起作用。使用mount可能有效,但我无法估计数百个坐骑的副作用。有没有我现在没有过来的选项?是否有已知的“最佳实践”?或者 WebDAV 根本不适合作为 Samba 的替代品?
我的一位客户正尝试使用 XHR2 表单数据(以及带有 CORS 的跨域请求)通过表单 POST 将文件上传到我们的远程 nginx 网络服务器。在上传过程中,网络服务器返回 408 并且 ajax 错误处理程序因此停止处理。这些文件在 20-120MB 范围内。部分文件上传的访问日志如下(他在Chrome 31和IE11上都试过):
[24/Dec/2013:16:44:18 -0500] "OPTIONS / HTTP/1.1" 200 0 "http://www.example.com/files/upload" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"
[24/Dec/2013:16:47:50 -0500] "POST / HTTP/1.1" 408 0 "http://www.example.com/files/upload" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"
...
[27/Dec/2013:01:23:51 -0500] "OPTIONS / HTTP/1.1" 200 0 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
[27/Dec/2013:01:33:11 -0500] "POST / HTTP/1.1" 408 0 "http://www.example.com/files/upload" …Run Code Online (Sandbox Code Playgroud) 我在 AWS Elastic Beanstalk 实例上遇到了问题,我似乎无法上传大小为 6MB 的 PDF 文件。首先,让我提供更多背景信息:
我能够成功上传 1-2MB 范围内的 PDF,但是当我尝试上传 6MB 文件时,它达到 100% 上传,然后将我重定向回 EE 中的主屏幕,但文件尚未上传。
鉴于上面的配置变量是这样设置的,有谁知道或有任何想法为什么我无法上传 6MB 文件?
我试图让 nginx 接受 POST 和 PUT 方法来上传文件。我已经编译了 nginx_upload_module-2.2.0。
我找不到任何方法。我只想为此只使用 nginx,没有反向代理,没有其他后端,也没有 php。
这是可以实现的吗?
这是我的配置:
nginx version: nginx/1.2.3TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-file-aio --with-ipv6 --with-cc-opt='-O2 -g' --add-module=/usr/src/nginx-1.2.3/nginx_upload_module-2.2.0
server {
listen 80;
server_name example.com;
location / {
root /html;
autoindex on;
}
location /upload {
root /html;
autoindex on;
upload_store /html/upload 1;
upload_set_form_field $upload_field_name.name "$upload_file_name"; …Run Code Online (Sandbox Code Playgroud)