先直接给出正确的权限:
文件夹 0755 文件 0644
那些让你吧所有文件都设置为0777权限的人都是白痴+sb
Linux的文件权限是linux能有如此安全性能的最大的保障之一,有朋友可能会知道,很多攻击windows的方法都是通过漏洞获取到创建用户的权限从而达到控制计算机的目的,在linux下,Root帐户有最大的权限,可以干任何事情,其他用户只能拥有自己的文件的所有权限和该改组成员赋予的文件的权限,下面开始对文件权限的一个说明,请各位Homezz用户仔细阅读。
读权限R。简单的说就是打开文件查看内容的权限,在web服务器中,若文件没有打开权限,则web服务器则视为该文件不存在,发送404 file not found错误,用数字4表示。
写权限W。一个文件/文件夹若没有写的权限,那么该文件则无法更改,文件夹若没有写权限,则该文件夹下无法创建新文件,用数字2表示。
执行权限X。程序文件若要执行,必须有执行权限,否则无法执行。打开一个文件夹也是执行,所以文件夹若没有执行权限,则无法被打开。用数字1表示。
谁拥有这个权限 | 文件所有者 | 组内用户 | 公共用户 |
可读=4 | 0 | 0 | 0 |
可写=2 | 0 | 0 | 0 |
可执行=1 | 0 | 0 | 0 |
实际权限,纵向相加 | 0 | 0 | 0 |
公共用户为所有者和组内用户之外的用户,比如访问web时候,linux可能用公共的用户去读取文件,这里不妨理解成是访客所能操作的那个用户。
下面举例(再次提醒,文件夹和文件不一样):
文件所有用户可写: 666 (3类用户均可读写)
谁拥有这个权限 | 文件所有者 | 组内用户 | 公共用户 |
可读=4 | 4 | 4 | 4 |
可写=2 | 2 | 2 | 2 |
可执行=1 | 0 | 0 | 0 |
实际权限,纵向相加 | 6 | 6 | 6 |
接上面的,假设我们吧文件夹设置成0666会怎么样,结果很明显,因为该文件夹没有执行权限,无法被打开,所以设置成0666则无法被访问到。
文件夹只可文件所有者有全部权限,组内用户、公共用户可读和执行(755)。一般web根目录文件夹都要这样设置,才安全。再次提示:文件夹没有执行权限,则该用户无法打开。
正常的服务器,若根目录权限也为0777,则会出现500错误
谁拥有这个权限 | 文件所有者 | 组内用户 | 公共用户 |
可读=4 | 4 | 5 | 4 |
可写=2 | 2 | 0 | 0 |
可执行=1 | 1 | 1 | 1 |
实际权限,纵向相加 | 7 | 5 | 5 |
如果php需要在某文件夹下创建文件,请把该文件的权限全部设置:即可都可写和可执行777
谁拥有这个权限 | 文件所有者 | 组内用户 | 公共用户 |
可读=4 | 4 | 4 | 4 |
可写=2 | 2 | 2 | 2 |
可执行=1 | 1 | 1 | 1 |
实际权限,纵向相加 | 7 | 7 | 7 |
为了安全起见,正常的php文件应该设置成:所有者可读可写,组用户可读,公共用户可读 644
谁拥有这个权限 | 文件所有者 | 组内用户 | 公共用户 |
可读=4 | 4 | 4 | 4 |
可写=2 | 2 | 0 | 0 |
可执行=1 | 0 | 0 | 0 |
实际权限,纵向相加 | 6 | 4 | 4 |
其他权限,请大家自行思考。homezz的用户,若您还不熟悉这些基本的权限,建议您仔细再次阅读一遍。
对于那些建议把所有文件和文件夹都设置成 777的人,我只能说你要么在误导别人,要么在残害新手!
来自 homezz 伟大的东哥