我的任务是在Web服务器上创建一个文件夹,并将一组图像上传到新文件夹。然后,任何有权访问Web服务器的人都可以看到生成的图像。该服务器是专用的Linux AWS实例。
我使用C#和FtpWebRequest
进行基本文件夹创建和文件传输。 FTP服务器设置为其本地根目录为/var/www/job_folder
,并且在该根文件夹中正确创建了文件夹和文件。我创建了一个特殊用户来上传文件。
但是,创建的文件夹和文件具有最小权限。新创建的文件夹为drwx-----
,而文件夹中的文件为-rw------
。当我尝试在网络浏览器中查看这些图像时,我会收到403 Forbidden
。
如何更改我的程序或更改我的文件夹或用户设置,以便我可以立即在网络上看到我ftp到服务器的文件夹和文件?我可以无限制地访问服务器。
答案 0 :(得分:1)
您可以在包含目录上设置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
或者,您可以在chmod
文件之后在FTP
中执行PUT
:
ftp someserver
PUT freddyfrog # upload that puppy
CHMOD 666 freddyfrog # let everyone see it (and overwrite it - try 444 if overwriting not wanted)