linux - FTP 传输结果文件对 Web 服务器可见?

标签 linux ftp file-permissions ftpwebrequest

我的任务是在网络服务器上创建一个文件夹,并将一组图像上传到新文件夹。任何有权访问 Web 服务器的人都应该可以看到生成的图像。服务器是专用的 Linux AWS 实例。

我使用 C# 和 FtpWebRequest 进行了基本的文件夹创建和文件传输工作。 FTP 服务器设置为在 /var/www/job_folder 中设置本地根目录,并在该根文件夹中正确创建文件夹和文件。我创建了一个特殊用户用于上传文件。

但是,创建的文件夹和文件具有最低权限。新建文件夹为drwx-----,文件夹内的文件为-rw------。当我尝试在 Web 浏览器中查看这些图像时,我收到 403 Forbidden

如何更改我的程序或更改我的文件夹或用户设置,以便我通过 ftp 传输到服务器的文件夹和文件立即在 Web 上可见?我可以不受限制地访问服务器。

最佳答案

您可以在包含目录上设置 SETGUID 位,并将目录的组设置为 Web 服务器的组 - 这样在其中创建的任何文件都将继承 Web 服务器的组,而不是创作者的群体。

我的意思是:

mkdir somedirectory          # create that puppy
chgrp <apache's group>       # set its group to that of apache
chmod g+s somedirectory      # force all files subsequently created there to belong to apache's group

或者,您可以在 PUT 文件后在 FTP 中执行 chmod:

ftp someserver
PUT freddyfrog               # upload that puppy
CHMOD 666 freddyfrog         # let everyone see it (and overwrite it - try 444 if overwriting not wanted)

关于linux - FTP 传输结果文件对 Web 服务器可见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062316/

相关文章:

开发机器的 PHP 文件权限

.net - FtpWebRequest/FtpWebResponse 上的 OPTS 命令

wordpress - 亚马逊 EC2 - 如何使 wp-config.php 可写?

linux - 确定返回参数的确切内容

linux - 在 ubuntu 服务器 17.04 上安装 gitlab-ce

sql-server - 没有文件可下载时,如何避免SSIS FTP任务失败?

java - 检测或防止 Commons Net FTPClient 在读取时阻塞

linux - Linux 上的 Netbeans 8 忽略了 umask

c++ - 在 Gtkmm 中创建自定义 IconFactory

linux - Grep 不在脚本中工作,但在控制台上工作