云服务器知识

Windows服务器下权限最小化原则的思考

  

我在安装网站程序的过程中,遇到了一些文件和文件夹权限设置的问题,

下面记录下我的一些经验和收集的权限的四个特性,及权限管理的四个原则

  1. MySQL,MSSQL,程序文件夹 的权限最小化,降权处理。
  2. 一般情况下,将数据库服务安装到非系统盘,删除其他权限,只保留System和Administrators权限,
  3. 为MySQL设置独立账户,MSSQL安装过程中选择低权限的内置账户(例如network services)达到降权的目的,
  4. 程序文件夹同样设置独立账户匿名登陆。

 

 

权限管理的四个特性和四个原则:

    四个特性: 继承性、累加性、优先性、交叉性

    继承性是说下级的目录在没有经过重新设置之前,是拥有上一级目录权限设置的。

    这里还有一种情况要说明一下,在分区内复制目录或文件的时候,复制过去的目录和文件将拥有它现在所处位置的上一级目录权限设置。

   但在分区内移动目录或文件的时候,移动过去的目录和文件将拥有它原先的权限设置。

    累加性是说如一个组GROUP1中有两个用户USER1、USER2,他们同时对某文件或目录的访问权限分别为“读取”和“写入”,

那么组GROUP1对该文件或目录的访问权限就为USER1和USER2的访问权限之和,实际上是取其最大的那个,即“读取”+“写入”=“写入”。 

又如一个用户USER1同属于组GROUP1和GROUP2,而GROUP1对某一文件或目录的访问权限为“只读”型的,而GROUP2对这一文件或文件夹的访问权限为“完全控制”型的,

则用户USER1对该文件或文件夹的访问权限为两个组权限累加所得,即:“只读”+“完全控制”=“完全控制”。 

    优先性,权限的这一特性又包含两种子特性,其一是文件的访问权限优先目录的权限,也就是说文件权限可以越过目录的权限,不顾上一级文件夹的设置。另一特性就是“拒绝”权限优先其它权限,也就是说“拒绝”权限可以越过其它所有其它权限,一旦选择了“拒绝”权限,则其它权限也就不能取任何作用,相当于没有设置。 

    交叉性是指当同一文件夹在为某一用户设置了共享权限的同时又为用户设置了该文件夹的访问权限,且所设权限不一致时,它的取舍原则是取两个权限的交集,也即最严格、最小的那种权限。如目录A为用户USER1设置的共享权限为“只读”,同时目录A为用户USER1设置的访问权限为“完全控制”,那用户USER1的最终访问权限为“只读”。

 

 

 

 

四个原则:拒绝优于允许原则、权限最小化原则、累加原则和权限继承性原则

   拒绝优于允许原则
" 拒绝优于允许"原则是一条非常重要且基础性的原则,它可以非常完美地处理好因用户在用户组的归属方面引起的权限"纠纷",例如,"shyzhong"这个用户既属于"shyzhongs"用户组,也属于"xhxs"用户组,当我们对"xhxs"组中某个资源进行"写入"权限的集中分配(即针对用户组进行) 时,这个时候该组中 "shyzhong"账户将自动拥有"写入"的权限。
但令人奇怪的是,"shyzhong"账户明明拥有对这个资源的"写入 "权限,为什么实际操作中却无法执行呢?原来,在"shyzhongs"组中同样也对"shyzhong"用户进行了针对这个资源的权限设置,但设置的权限是"拒绝写入"。基于"拒绝优于允许"的原则,"shyzhong"在"shyzhongs"组中被 "拒绝写入"的权限将优先"xhxs"组中被赋予的允许"写入"权限被执行。因此,在实际操作中,"shyzhong"用户无法对这个资源进行"写入"操作。
  权限最小化原则
Windows XP将"保持用户最小的权限"作为一个基本原则进行执行,这一点是非常有必要的。这条原则可以确保资源得到最大的安全保障。这条原则可以尽量让用户不能访问或不必要访问的资源得到有效的权限赋予限制。
基于这条原则,在实际的权限赋予操作中,我们就必须为资源明确赋予允许或拒绝操作的权限。例如系统中新建的受限用户"shyzhong"在默认状态下对 "DOC"目录是没有任何权限的,现在需要为这个用户赋予对"DOC"目录有"读取"的权限,那么就必须在"DOC"目录的权限列表中为 "shyzhong"用户添加"读取"权限。
权限继承性原则
权限继承性原则可以让资源的权限设置变得更加简单。假设现在有个"DOC"目录,在这个目录中有"DOC01"、"DOC02"、"DOC03"等子目录,现在需要对DOC目录及其下的子目录均设置 "shyzhong"用户有"写入"权限。因为有继承性原则,所以只需对"DOC"目录设置"shyzhong"用户有"写入"权限,其下的所有子目录将自动继承这个权限的设置。
  累加原则
这个原则比较好理解,假设现在"zhong"用户既属于"A"用户组,也属于"B"用户组,它在A用户组的权限是"读取",在"B"用户组中的权限是"写入",那么根据累加原则,"zhong"用户的实际权限将会是"读取+写入"两种。
显然,"拒绝优于允许"原则是用于解决权限设置上的冲突问题的;"权限最小化"原则是用于保障资源安全的;"权限继承性"原则是用于"自动化"执行权限设置的;而"累加原则"则是让权限的设置更加灵活多变。几个原则各有所用,缺少哪一项都会给权限的设置带来很多麻烦!

 权限继承性原则
权限继承性原则可以让资源的权限设置变得更加简单。假设现在有个"DOC"目录,在这个目录中有"DOC01"、"DOC02"、"DOC03"等子目录,现在需要对DOC目录及其下的子目录均设置 "shyzhong"用户有"写入"权限。因为有继承性原则,所以只需对"DOC"目录设置"shyzhong"用户有"写入"权限,其下的所有子目录将自动继承这个权限的设置。