windows上的权限管理机制

windows中,权限指的是不同账户对文件,文件夹,注册表等的访问能力 。在windows中,为不同的账户设置权限很重要,可以防止重要文件被其他人所修改,使系统崩溃 。
说到Windows 的权限,就不能不说说"安全标识符"(Security Identifier,SID)、"访问控制列表"(Access Control List,ACL)和安全主体(Security Principal)这三个要素 。
安全标识符在Windows 中,系统是通过SID对用户进行识别的,而不是很多用户认为的"用户名称" 。SID可以应用于系统内的所有用户、组、服务或计算机,因为SID是一个具有惟一性、绝对不会重复产生的数值 。
访问控制列表是权限的核心技术 。顾名思义,这是一个权限列表,用于定义特定用户对某个资源的访问权限 。
在Windows XP中,可以将用户、用户组、计算机或服务都看成是一个安全主体,每个安全主体都拥有相对应的账户名称和SID 。

windows上的权限管理机制

文章插图


常用的linux文件权限:444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
从左至右,1-3位数字代表文件所有者的权限,4-6位数字代表同组用户的权限,7-9数字代表其他用户的权限 。
而具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;
通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
以755为例:
1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限 。
rwx权限数字解释
chmod也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限 。
r=4,w=2,x=1
【windows上的权限管理机制】若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=7 。

windows上的权限管理机制

文章插图
如果想了解基础原理,请参考Windows Internals 7th Edition Part 1的Security一章 。基本上都是Object Manager来管理每个对象的权限的,用的是ACL(Access Control List) 。每个对象(打开的文件、进程、线程等等很多种类)都有权限控制 。可以用Sysinternals的免费工具WinObj来观察这些对象和其上的ACL 。文件系统里面,文件和目录也是通过ACL来控制的,分DACL(自主ACL,用于控制权限)和SACL(系统ACL,用于控制审计信息)两种 。在资源管理器里查看文件属性就能看见它上面的安全性设置 。另外在Windows Vista中引入了UAC和UIPI 。UAC简单地说就是管理员用户登录时,它的默认令牌(代表它的身份)里面Administrators组是去掉的,这样可以保护它默认不能访问系统全局的一些东西 。只有当权限提升(elevate)以后,新生成的令牌才有Administrators组 。UIPI是指,当前用户以非管理员的身份启动的进程,无法通过UI(比如发送WM_*消息)来访问管理员身份启动的进程,除非该管理员身份启动的进程告诉Windows要允许这样的访问 。
Windows 8则在Metro App(现在叫UWP)上强制实现沙箱访问 。默认情况下权限十分有限,安全性很高 。即使权限全部开启也无法有管理员的权限,并且还是在UWP平台的管控之内 。所以装UWP应用程序是比较放心的,基本上就算是个坏软件最多卸载掉,不会像流氓软件那样在系统里留下好多东西怎么卸载都卸载不干净的情况

    推荐阅读