Chmod 777 to a folder and all contents
我有一个web目录/www和一个名为store的文件夹。
在store中有几个文件和文件夹。我想授予文件夹store和store文件夹中的所有文件和文件夹所有权限。
我该怎么做?我猜是通过.htaccess。
- 您需要认真考虑为/www目录下的所有文件和文件夹提供777,这意味着您的所有文件和目录都将是可读、可写和可执行的。
- 我只存储可写的。
- 为什么不?当然,它向世界敞开了大门,但世界上的人都很好,从来没有恶意。
- 只是为了应对评论中的危言耸听的错误信息:您的文件可能不会被"全世界"写入,甚至不可能被"全世界"读取。您必须设置一个明确允许这些内容的Web服务器,这是非常罕见的。这些文件将是可读、可写和可执行的任何用户谁能够登录到您的系统。
- @乔什诺伊,这不是危言耸听。阅读OWASP前10个Web应用程序安全漏洞:A5是"安全配置错误"(例如,上传目录上的777),A1是"注入"。a1+a5=pwnd.google.com/search?q=nginx+config+php+code+injection+jpg+comm‌&误8203;ent在Linux上,Web服务器在用户(如www-data)下运行,因此每次服务器提供文件时,都是用户登录系统。
- @将777授权给您的Web服务器运行的用户通常不会向"整个世界"打开您的文件。默认情况下,大多数Web服务器在默认情况下不提供任何文件,除非您将其明确设置为。
- @Joshnoe我假设您在讨论是否配置了目录列表,但这不是这里讨论的内容。这些评论涉及基本的防御安全原则,以帮助防止代码注入和目录遍历攻击。你所说的类似于"如果人们的窗帘已经关上了,就应该锁门,这是危言耸听的。"
- 除其他人所说的之外,我建议对这样一个目录的最不安全的权限是1777(注意粘性位—这很重要),文件最坏应该是775(具有适当的组和用户所有权)。几乎总有比将目录设置为777更好的选择。例如,在正确配置的机器上,即使每个人都可以向/tmp写入数据,但它不是777。它是1777,这意味着一旦有人在那里创建了一个文件,该文件的权限就决定了谁可以删除/重命名它,而777目录默认情况下允许任何人这样做。
- 当然,这都是假设您已经配置了Web服务器,使其不在该目录中运行脚本或从该目录处理.htaccess文件等。
- 通常情况下,755或a+x(用户、组和世界可读,用户可写,用户、组和世界可执行)就足够了。
如果您要使用控制台命令,它将是:
chmod -R 777 /www/store。-R选项(或--recursive选项)使其递归。
或者,如果要使当前目录中的所有文件都具有所有权限类型:
chmod -R 777 ./
如果您需要有关chmod命令的更多信息,请参阅:文件权限
- 如果您有一个到所述文件夹的symlink,要更改symlink上的权限,请执行chmod -h 777 /some_path/symlink。
如果所有权限都是指777
导航到文件夹并
您可以使用选项
-R授予文件夹及其所有内容的权限,即递归权限。
但我建议不要对所有文件夹和所有内容授予777权限。您应该为www目录文件夹中的每个子文件夹授予特定的权限。
理想情况下,出于安全原因,允许
755访问web文件夹。
1
| sudo chmod -R 755 /www/store |
每个数字在许可中都有意义。不要给予完全的许可。
1 2 3 4 5 6 7 8 9
| N Description ls binary
0 No permissions at all --- 000
1 Only execute --x 001
2 Only write -w- 010
3 Write and execute -wx 011
4 Only read r-- 100
5 Read and execute r-x 101
6 Read and write rw- 110
7 Read, write, and execute rwx 111 |
- 第一个数字7—为用户读、写和执行。
- 第二个数字5-读取和执行组。
- 第三个数字5-为其他人读取和执行。
如果生产Web文件夹有多个用户,则可以相应地设置权限和用户组。
更多信息:
了解文件权限:"chmod 777"是什么意思?
我应该在Web根目录上设置什么文件权限?
为什么/var/www不应该有chmod 777
- 为什么要投票?是不是回答错了?请向下投票人解释一下,这样我可以提高回答的质量。
- 我没有投反对票,但我认为原因是你的回答不包括行动问题。这仍然是一个很好的答案,只是不适合这个主题。
- @marijkeluttekes:已经有答案说明了如何授予777文件夹权限。这不是我的回答。我要说的是,根本不允许777允许使用www文件夹。关于阿努巴瓦的问题,见第一条评论。而是授予755或所需权限。我们有时会从问题中了解到,OP正朝着错误的方向前进。那我们就应该给自己一条应该走的路。这不仅是OP需要解决的问题。同样的问题,另一个人会来到这个页面寻找答案,然后那个人就会明白这个答案是什么。
- 这应该标记为正确答案。其他答案给出了问题的"解决方案",而这一个解释了如何设置典型的文件夹结构。如果你想制作一个web文件夹777的话,这是非常罕见的。阅读@somnathmuluk提供的更多信息链接,以便您了解原因。
- 看完后,我想754也是个不错的选择
也可以使用chmod 777 *。
这将授予当前文件夹中的所有文件以及将来添加的文件的权限,而不授予目录本身的权限。
注意:这应该在文件所在的文件夹中完成。对我来说,这是一个有问题的图片,所以我去了我的图片文件夹,做了这个。
- 不,不适用于Ubuntu。新文件的权限似乎与目录中已有的文件不同。
是的,很正确,chmod命令中的-R选项使给定目录下的文件/子目录获得777权限。但一般来说,给所有文件和目录赋予777并不是一个好的实践,因为它可能导致数据不安全。请尽量具体说明授予所有文件和目录的所有权限。回答你的问题:
1
| chmod -R 777 your_directory_name |
…将工作
对于Mac,应该是"超级用户do";
所以首先:
然后
1
| chmod -R 777 directory_path |
这对我不起作用。
1
| sudo chmod -R 777 /path/to/your/file/or/directory |
我也用过-f。
1
| sudo chmod -R -f 777 /path/to/your/file/or/directory |