Loading...

再次谈谈linux下文件夹权限的问题

有网友说我前面的日志写得太简单了,好吧,这篇我稍微详细一点。其实很为难:详细点吧,都不愿意看,简单点吧,都说看不懂!

homezz.com后面的几个的服务器的数据转移过程中,发现很多homezz.com用户转移到新的服务器上的时候,都出现了这样那样的错误,归根结底,就是文件夹权限设置错误。旧的主机放得太开,对安全性能控制不严格,所以文件权限太大没有做限制,新服务器的安全机制更加严格,因此太大的权限服务器将会拒绝执行。下面开始讲一讲linux下的文件权限。

Linux的文件权限是linux能有如此安全性能的最大的保障之一,有朋友可能会知道,很多攻击windows的方法都是通过漏洞获取到创建用户的权限从而达到控制计算机的目的,在linux下,Root帐户有最大的权限,可以干任何事情,其他用户只能拥有自己的文件的所有权限和该改组成员赋予的文件的权限,下面开始对文件权限的一个说明。

读权限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

其他权限,请大家自行思考。

对于那些建议把所有文件和文件夹都设置成 777的人,我只能说你要么在误导别人,要么在残害新手!

标签:,
发表于 2009-06-18 10:44:50 目录:网站技术, 虚拟主机 [RSS 2.0] 你可以发表评论, 或者从您的网站 trackback
  • 相关阅读
  • homezz 美国专业主机商
    已经有14位大师动手指导 拒绝低俗
    • 1楼 Showfom 在2009.06.18 10:53发表评论如下: 回复

      一般偶是755

      • 2楼 老豆豉 在2009.06.18 11:00发表评论如下: 回复

        技术文章,学习了。

        • 3楼 huary 在2009.06.18 11:55发表评论如下: 回复

          最近正在搭wp博客,过程中经常要改文件权限,我总觉得不太放心。谢谢你这篇及时的文章!

          • 4楼 leafduo 在2009.06.18 13:16发表评论如下: 回复

            没有读权限会 403 的吧?不应该是 404 吧?

            • 4楼附属品 江东 在2009.06.18 13:17发表评论如下: 回复

              文件不可读会404找不到文件,文件夹会403,不管404还是403对访问者来说,都是一样的

            • 5楼 welee 在2009.06.18 15:01发表评论如下: 回复

              Linux的文件权限做得比Windows的好。

              • 6楼 allarem 在2009.06.18 19:36发表评论如下: 回复

                严重同意最后的话,N多人在Linux类的论坛上教别人开777权限,个人电脑就算了,网站的话那就搞笑了

                • 6楼附属品 leafduo 在2009.06.18 20:11发表评论如下: 回复

                  有些功能要求 0777 那就没办法了

                  • 6楼附属品 allarem 在2009.06.18 20:16发表评论如下: 回复

                    我日常用(个人PC)基本上没777的啊,能举例不?

                    • 6楼附属品 江东 在2009.06.18 20:19发表评论如下: 回复

                      个人不需要,反正自己的文件一般来说自己可以随便控制

                • 7楼 风之逸 在2009.06.19 13:58发表评论如下: 回复

                  没有必要设置777,777简直就是给别人留后门啊
                  正常的php程序,755也可以创建文件的。

                  • 7楼附属品 Fengshen 在2009.06.19 16:41发表评论如下: 回复

                    有的主机可以 ,有的就得将特定的文家目录或者文件设置为777了!

                    • 7楼附属品 leafduo 在2009.06.20 10:19发表评论如下: 回复

                      看运行 php 的用户和文件的属主是不是同一用户了

                    • 8楼 龙君 在2010.07.18 12:16发表评论如下: 回复

                      呵呵,东哥威武!!!!

                      评论分页: 1
                      (Required)
                      (Required, not published)
                      如果留言未显示无需重复留言,我将为你恢复!