SEAndroid策略分析(二):类和许可

  • 客体类别声明

文件名:security_classes

class filesystem

class file

class dir

class fd

class lnk_file

class chr_file

class blk_file

class sock_file

class fifo_file

.......

 

  • 声明许可

1.通用许可,它允许我们创建与客体类别一起作为一个组的许可,通用许可在类似的客体类别(如文件和符号连接)共享一套访问许可时很有用;

 文件名:access_vectors

通用许可集:

commonfile   (通用许可名)此处的file并不是类名,而是通用许可名,这一点要注意

{

      ioctl

      read

      write

      create

      getattr

      setattr

      lock

      relabelfrom

      relabelto

      append

      unlink

      link

      rename

      execute

      swapon

      quotaon

      mounton

}

2.特别类别许可

第二种方法叫做特定类别许可,它允许我们单独为客体类别声明特定的许可 

class filesystem

{

      mount

      remount

      unmount

      getattr

      relabelfrom

      relabelto

      transition

      associate

      quotamod

      quotaget

}

 

三种方法将客体类别和许可关联(访问向量)

1.        特别类别许可(看上面)

2.        使用通用许可

class socket

inherits socket

将通用许可集socket中的许可分配给类socket。

 

3.        联合许可

class dir

inherits file

{

      add_name

      remove_name

      reparent

      search

      rmdir

      open

      audit_access

      execmod

}

 

访问向量语法:class类别名[inherits通用许可集名][{许可集}]

参考文献:SELinux实例:使用安全增强的Linux:http://book.51cto.com/art/200810/94193.htm

你可能感兴趣的:(android,seandroid,selinux,SEAndroid)