PHP / Apache上传文件夹的权限是什么?
抱歉的基本问题 – 我是一个.NET开发人员,并没有太多的LAMP设置经验。
我有一个PHP网站,将允许上传到特定的文件夹。 我被告知,这个文件夹需要由Web服务器用户拥有上传过程才能工作,所以我创build了文件夹,然后设置权限,如下所示:
chown apache:apache -R uploads/ chmod 755 -R uploads/
现在唯一的问题是,FTP用户根本无法修改上传的文件。
是否有一个权限设置,允许我仍然上传文件,然后修改它们以外的用户而不是Web服务器用户?
你可以用apache用户和FTP用户作为成员创build一个新的组,然后在上传文件夹775上创build权限。这应该使apache和FTP用户都能够写入文件夹中的文件,但是让其他人从修改它们。
如果你真的想这样做的话,我会和Ryan一起回答。
总的来说,在一个* nix环境中,你总是希望尽可能less的授予权限。
10次中的9次,755是理想的权限 – 因为唯一能修改文件的用户将是web服务器。 如果您真的需要更改,请将您的ftp用户更改为775。
由于您自己承认PHP是新手,因此您可以通过以下链接提高上传服务的安全性: move_uploaded_file
或者至less766。
- 阅读= 4
- 写= 2
- 执行= 1
7 =读取+写入+执行
6 =读取+写入
- 第一个数字:所有者
- 第二个数字:组
- 第三个号码:其他用户
重要的是, apache
用户和组应该有最小的read
访问权限,并在某些情况下execute
访问权限。 其余的你可以给0
访问。
这是最安全的设置。
我会支持创build一个有权上传的ftp组的想法。 但是,我不认为有必要给予775的许可。 7代表读,写,执行。 通常你想允许某些组读取和写入,但根据情况,执行可能不是必需的。
我将补充一点,如果您使用的是SELinux,则需要确保types上下文是tmp_t您可以使用chcon实用程序
chcon -t tmp_t上传
还请记住CHOWN
或chgrp
您的网站文件夹。 尝试myusername# chown -R myusername:_www uploads
基于@Ryan Ahearn
的回答,以下是我在Ubuntu
16.04上创build的用户front
,只有nginx的web dir /var/www/html
权限。
脚步:
*前置步骤: *基本的服务器准备, *创build用户“开发” 这将是“/ var / www / html”的所有者, * *安装nginx, * * *创build用户“前” sudo useradd -d / home / front -s / bin / bash front sudo passwd前面 #创build主文件夹,如果还不存在, sudo mkdir / home / front #设置新主文件夹的所有者, sudo chown -R正面:正面/正面/正面 #切换到用户, 前线 #复制.bashrc,如果还不存在, cp /etc/skel/.bashrc〜front / cp /etc/skel/.profile〜front / #启用颜色, vi〜front / .bashrc #取消以“force_color_prompt”开头的行注释, #退出用户 出口 * *添加到组“开发”, sudo usermod -a -G dev前端 *更改网页目录的所有者, sudo chown -R dev:dev / var / www *更改networking目录的权限, chmod 775 $(find / var / www / html -type d) chmod 664 $(find / var / www / html -type f) * *重新login为“前” 为了使小组生效, * *testing * * 好 *