您正在尝试修复Web服务器的权限问题,并在Internet上找到了答案,说您需要递归修改Web目录的权限。
在执行此操作之前,请确保您了解chmod -R 777
意味着什么以及为什么永远不要将权限设置为777。本教程介绍基本的Linux权限模型以及chmod 777含义。
在Linux中,对文件的访问由文件许可权,属性和所有权控制。
你需要了解Linux文件系统权限模型,才可以对文件和目录的访问限制为仅授权用户和进程访问,从而使系统更安全。
每个文件均由一个指定用户和一个组拥有,并为三种不同类别的用户分配权限。包括文件所有者。组成员。其他人。
有三种文件权限类型适用于每个用户类别,并允许您指定允许哪些用户读取文件,写入文件或执行文件。相同的权限属性适用于具有不同含义的文件和目录。
读取权限表示文件可读。例如设置读取权限后,用户可以在文本编辑器中打开文件。可以查看目录的内容。 用户可以使用ls
命令列出目录中的文件。
写权限表示可以更改或修改文件。可以更改目录的内容。用户可创建新文件,删除文件,移动文件,重命名文件。
执行权限表示可以执行文件。可以使用cd
命令切换目录。可以使用ls
命令查看文件权限。
ls -l filename.txt
-rw-r--r-- 12 myfreax users 12.0K Apr 8 20:51 filename.txt
|[-][-][-]- [------] [---]
| | | | | | |
| | | | | | +-----------> 7. Group
| | | | | +-------------------> 6. Owner
| | | | +--------------------------> 5. Alternate Access Method
| | | +----------------------------> 4. Others Permissions
| | +-------------------------------> 3. Group Permissions
| +----------------------------------> 2. Owner Permissions
+------------------------------------> 1. File Type
第一个字符显示文件类型。它可以是常规文件-
,目录d
,符号链接l
或任何其他特殊类型的文件。
接下来的9个字符代表文件权限,三个三元组,每个三元组由三个字符组成。第一个三元组显示所有者的权限,第二个三元组显示组的权限,最后一个三元组显示其它人的权限。
权限数字模式
文件权限可以用数字或符号格式表示。在本教程中,我们将重点介绍数字模式。数字的权限模式可以由三到四位数字组成,范围从0到7。
使用3位数字时,第一位代表文件所有者的权限,第二位代表文件组的权限,最后一位代表其他用户的权限。
写入,读取和执行权限的值分别是。r
读取= 4。w
写入= 2。x
执行= 1。无权限= 0。指定用户类别的数字权限是该类别的数字值的和。
0(0 + 0 + 0)
–无权限。1(0 + 0 + 1)
–仅执行权限。2(0 + 2 + 0 )
–仅写权限。
3(0 + 2 + 1)
–写和执行权限。4(4 + 0 + 0)
–仅读权限。5(4 + 0 + 1)
–读取和执行权限。
6(4 + 2 + 0)
–读取和写入权限。7(4 + 2 + 1)
– 读取,写入和执行权限。
例如,如果权限值设置为750,则意味着文件的所有者拥有读取,写入和执行许可,文件的组具有读取和执行权限,而其他用户则没有权限。
相当于所有者:rwx = 4 + 2 + 1 = 7。组:rx = 4 + 0 + 1 = 5。其他:rx = 0 + 0 + 0 = 0。
当使用4位数字时,第一位数字含义分别是setuid = 4,setgid = 2,sticky = 1,无变化= 0。
接下来的三位数与使用三位数数字的含义相同。如果第一个数字为0,则可以省略,并且该模式可以用3个数字表示。 数字模式0755
与755
相同。
要以数字模式查看文件的权限,请使用stat
命令。
stat -c "%a" filename
644
chmod 777
设置文件或目录的777权限意味着所有用户都可以读取,写入和执行文件或目录,并且可能会带来巨大的安全风险。
例如,如果将/var/www
目录的所有文件和子目录的权限递归更改为777
,则系统上的任何用户都可以在目录中创建,删除或修改文件。
如果您的Web服务器遇到权限问题,请勿以递归方式将权限设置为777
,建议将文件的权限设置为644
,将目录的权限设置为755
,而不是将权限递归设置为777
。 。
你可以使用chown
命令更改文件所有权,并使用chmod
命令更改权限。
假设您的web服务器以myfreax用户运行的PHP应用程序。要设置正确的权限,请运行以下命令。
只有root用户,文件所有者才能更改文件的权限。 使用chmod
时要格外小心,尤其是在递归更改权限时。
chown -R myfreax: /var/www
find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
结论
如果要管理Linux系统,了解Linux权限的工作方式至关重要。绝对不要设置777权限文件和目录权限。 777表示任何人都可以使用这些文件做任何事情。
如有任何疑问,请随时发表评论。