我的任务是在网络服务器上创建一个文件夹,并将一组图像上传到新文件夹。任何有权访问 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/