Windows权限的基本介绍

众所周知,Windows是一个支持多用户、多任务的操作系统,这是权限设置的基础,一切权限设置都是基于用户和进程而言的,不同的用户在访问某台计算机时,将会有不同的权限。Windows NT里,用户被分成许多组,组和组之间都有不同的权限,当然,一个组的用户和用户之间也可以有不同的权限。NT中常见的用户组如下:

  ·Administrators:管理员组

·Power Users:高级用户组

·Users:普通用户组

·Guests:来宾组

·Everyone:这个计算机上的所有用户都属于这个组

权限的常量值

SeCreateTokenPrivilege		=1
SeAssignPrimaryTokenPrivilege	=2
SeLockMemoryPrivilege		=3
SeIncreaseQuotaPrivilege	=4
SeUnsolicitedInputPrivilege	=5
SeMachineAccountPrivilege	=6
SeTcbPrivilege		        =7
SeSecurityPrivilege		=8
SeTakeOwnershipPrivilege	=9
SeLoadDriverPrivilege		=10
SeSystemProfilePrivilege	=11
SeSystemtimePrivilege		=12
SeProfileSingleProcessPrivilege	=13
SeIncreaseBasePriorityPrivilege	=14
SeCreatePagefilePrivilege	=15
SeCreatePermanentPrivilege	=16
SeBackupPrivilege		=17
SeRestorePrivilege		=18
SeShutdownPrivilege		=19
SeDebugPrivilege		=20
SeAuditPrivilege		=21
SeSystemEnvironmentPrivilege	=22
SeChangeNotifyPrivilege		=23
SeRemoteShutdownPrivilege	=24 
SeUndockPrivilege		=25 
SeSyncAgentPrivilege		=26 
SeEnableDelegationPrivilege	=27 
SeManageVolumePrivilege		=28 
SeImpersonatePrivilege		=29 
SeCreateGlobalPrivilege		=30 
SeTrustedCredManAccessPrivilege	=31 
SeRelabelPrivilege		=32 
SeIncreaseWorkingSetPrivilege	=33 
SeTimeZonePrivilege		=34 
SeCreateSymbolicLinkPrivilege	=35



3.2  NT Defined Privileges

在winnt.h对NT中的定义的权限有如下申明:

///////////////////////////////////////////////////////////////////////////////

//                                         //

//                  NT Defined Privileges                      //

//                                      //

///////////////////////////////////////////////////////////////////////////////

#define SE_CREATE_TOKEN_NAME          TEXT("SeCreateTokenPrivilege")

#define SE_ASSIGNPRIMARYTOKEN_NAME    TEXT("SeAssignPrimaryTokenPrivilege")

#define SE_LOCK_MEMORY_NAME           TEXT("SeLockMemoryPrivilege")

#define SE_INCREASE_QUOTA_NAME        TEXT("SeIncreaseQuotaPrivilege")

#define SE_UNSOLICITED_INPUT_NAME     TEXT("SeUnsolicitedInputPrivilege")

#define SE_MACHINE_ACCOUNT_NAME       TEXT("SeMachineAccountPrivilege")

#define SE_TCB_NAME                   TEXT("SeTcbPrivilege")

#define SE_SECURITY_NAME              TEXT("SeSecurityPrivilege")

#define SE_TAKE_OWNERSHIP_NAME        TEXT("SeTakeOwnershipPrivilege")

#define SE_LOAD_DRIVER_NAME           TEXT("SeLoadDriverPrivilege")

#define SE_SYSTEM_PROFILE_NAME        TEXT("SeSystemProfilePrivilege")

#define SE_SYSTEMTIME_NAME            TEXT("SeSystemtimePrivilege")

#define SE_PROF_SINGLE_PROCESS_NAME   TEXT("SeProfileSingleProcessPrivilege")

#define SE_INC_BASE_PRIORITY_NAME     TEXT("SeIncreaseBasePriorityPrivilege")

#define SE_CREATE_PAGEFILE_NAME       TEXT("SeCreatePagefilePrivilege")

#define SE_CREATE_PERMANENT_NAME      TEXT("SeCreatePermanentPrivilege")

#define SE_BACKUP_NAME                TEXT("SeBackupPrivilege")

#define SE_RESTORE_NAME               TEXT("SeRestorePrivilege")

#define SE_SHUTDOWN_NAME              TEXT("SeShutdownPrivilege")

#define SE_DEBUG_NAME                 TEXT("SeDebugPrivilege")

#define SE_AUDIT_NAME                 TEXT("SeAuditPrivilege")

#define SE_SYSTEM_ENVIRONMENT_NAME    TEXT("SeSystemEnvironmentPrivilege")

#define SE_CHANGE_NOTIFY_NAME          TEXT("SeChangeNotifyPrivilege")

#defineSE_REMOTE_SHUTDOWN_NAME         TEXT("SeRemoteShutdownPrivilege")

  这是在NT下面定义的Windows基本的24个权限,当然这是在system下的权限,对于以上不同的组所具有的权限不一样,下面就Windows XP下各个组的权限进行一些说明

Windows XP下各个组的权限

·system权限:

以操作系统方式操作 (SeTcbPrivilege)

创建记号对象 (SeCreateTokenPrivilege)

 取得文件或其它对象的所有权 (SeTakeOwnershipPrivilege)

创建页面文件 (SeCreatePagefilePrivilege)

内存中锁定页 (SeLockMemoryPrivilege)

替换进程级记号 (SeAssignPrimaryTokenPrivilege)

调整进程的内存配额 (SeIncreaseQuotaPrivilege)

增加进度优先级 (SeIncreaseBasePriorityPrivilege)

创建永久共享对象 (SeCreatePermanentPrivilege)

调试程序 (SeDebugPrivilege)

产生安全审核 (SeAuditPrivilege)

管理审核和安全日志 (SeSecurityPrivilege)

修改固件环境值 (SeSystemEnvironmentPrivilege)

跳过遍历检查 (SeChangeNotifyPrivilege)

备份文件和目录 (SeBackupPrivilege)

还原文件和目录 (SeRestorePrivilege)

关闭系统 (SeShutdownPrivilege)

装载和卸载设备驱动程序 (SeLoadDriverPrivilege)

配置单一进程 (SeProfileSingleProcessPrivilege)

更改系统时间 (SeSystemtimePrivilege)

从插接工作站中取出计算机 (SeUndockPrivilege)

执行卷维护任务 (SeManageVolumePrivilege)

身份验证后模拟客户端 (SeImpersonatePrivilege)

创建全局对象 (SeCreateGlobalPrivilege)

 

·Administrators下的权限:

创建记号对象 (SeCreateTokenPrivilege)

替换进程级记号 (SeAssignPrimaryTokenPrivilege)

跳过遍历检查 (SeChangeNotifyPrivilege)

管理审核和安全日志 (SeSecurityPrivilege)

备份文件和目录 (SeBackupPrivilege)

还原文件和目录 (SeRestorePrivilege)

更改系统时间 (SeSystemtimePrivilege)

关闭系统 (SeShutdownPrivilege)

从远端系统强制关机 (SeRemoteShutdownPrivilege)

取得文件或其它对象的所有权 (SeTakeOwnershipPrivilege)

调试程序 (SeDebugPrivilege)

修改固件环境值 (SeSystemEnvironmentPrivilege)

配置系统性能 (SeSystemProfilePrivilege)

配置单一进程 (SeProfileSingleProcessPrivilege)

增加进度优先级 (SeIncreaseBasePriorityPrivilege)

装载和卸载设备驱动程序 (SeLoadDriverPrivilege)

创建页面文件 (SeCreatePagefilePrivilege)

调整进程的内存配额 (SeIncreaseQuotaPrivilege)

从插接工作站中取出计算机 (SeUndockPrivilege)

执行卷维护任务 (SeManageVolumePrivilege)

创建全局对象 (SeCreateGlobalPrivilege)

身份验证后模拟客户端 (SeImpersonatePrivilege)

    我们可以看出Administrators下的权限和system下的权限相比就少了以操作系统方式操作和内存中锁定页,而这2个权限对我们来说基本没什么用,是操作系统的工作,所以说Administrators下的权限几乎具备system的功能,所以这类帐号一定要加强管理,否则被不法程序以Administrators身份进入的话造成的损失是很大的。

 

windows系统权限小节(3)



·Power Users下的权限:

跳过遍历检查 (SeChangeNotifyPrivilege)

    更改系统时间 (SeSystemtimePrivilege)

    关闭系统 (SeShutdownPrivilege)

    配置单一进程 (SeProfileSingleProcessPrivilege)

    从插接工作站中取出计算机 (SeUndockPrivilege)

    创建全局对象 (SeCreateGlobalPrivilege)                         

 

·Users和Guests下的权限:

跳过遍历检查 (SeChangeNotifyPrivilege)

关闭系统 (SeShutdownPrivilege)

从插接工作站中取出计算机 (SeUndockPrivilege)

创建全局对象 (SeCreateGlobalPrivilege)

    从上面获得的这个组的权限来说,自Administrators以下,用户的权限就开始锐减,这样的权限就是被不法程序得到也是起不了很大作用的。

下面对以上各组进行一下总结对比:

SYSTEM组拥有和Administrators一样、甚至比其还高的权限,但是这个组不允许任何用户的加入,在察看用户组的时候,它也不会被显示出来。系统和系统级的服务正常运行所需要的权限都是靠它赋予的。

Administrators,管理员组,默认情况下,Administrators中的用户对计算机/域有不受限制的完全访问权。分配给该组的默认权限允许对整个系统进行完全控制。所以,只有受信任的人员才可成为该组的成员。

Power Users,高级用户组,Power Users 可以执行除了为 Administrators 组保留的任务外的其他任何操作系统任务。分配给 Power Users 组的默认权限允许 Power Users 组的成员修改整个计算机的设置。但Power Users 不具有将自己添加到 Administrators 组的权限。在权限设置中,这个组的权限是仅次于Administrators的。
    Users,普通用户组,这个组的用户无法进行有意或无意的改动。因此,用户可以运行经过验证的应用程序,但不可以运行大多数旧版应用程序。Users 组是最安全的组,因为分配给该组的默认权限不允许成员修改操作系统的设置或用户资料。Users 组提供了一个最安全的程序运行环境。在经过 NTFS 格式化的卷上,默认安全设置旨在禁止该组的成员危及操作系统和已安装程序的完整性。用户不能修改系统注册表设置、操作系统文件或程序文件。Users 可以关闭工作站,但不能关闭服务器。Users 可以创建本地组,但只能修改自己创建的本地组。
    Guests,来宾组,按默认值,来宾跟普通Users的成员有同等访问权,但来宾帐户的限制更多。
    Everyone,顾名思义,所有的用户,这个计算机上的所有用户都属于这个组。 

 

Windows下的一些权限

 

SeSecurityPrivilege管理审计和安全日志。允许用户指定对象访问的审计。有这种特权的用户也可以清空安全日志。默认情况下Administrators有该特权

 

SeBackupPrivilege备份文件和目录。允许用户绕过文件和目录的权限来做备份。只有当应用程序尝试访问NTFS备份API时才检查这个特权。

默认情况下,这个特权分配给Administrators和BackupOperators。

 

SeRestorePrivilege允许用户绕过文件及目录权限来恢复备份文件。默认情况下Administrators和BackupOperators有此特权。

 

SeTakeOwnershipPrivilege取得文件所有者身份。允许用户取得在系统中任何可得到的对象的所有者身份,

包括:AD对象,文件,文件夹,打印机,注册表键,进程和线程。默认情况下Administrator有此特权。

 

SeDebugPrivilege调试程序。允许用户连接一个Debugger来调试任何进程。默认情况下Administrators有该特权。

 

SeSystemEnvironmentPrivilege修改firmware环境变量。允许用户使用进程通过一个API来设置系统环境变量,

另外,也可以让用户使用SystemProperties来做到以上这一步。默认情况下Administrators有该特权。

 

SeLoadDriverPrivilege安装和卸载设备驱动程序。允许用户安装和卸载即插即用设备的驱动程序,不是即插即用的不受这个特权影响,

但是只能被Administrators所安装。因为驱动程序是作为被信任的程序来运行的,这需要很高的特权。而这种特权可能会被用于安装恶意程序,

和破坏性的访问。默认情况下Administrators有该特权。

 

SeImpersonatePrivilege“身份验证后模拟客户端”用户权限(SeImpersonatePrivilege)

是一种Windows2000安全设置,首先在Windows2000SP4中引入。默认情况下,设备的本地管理员组成员和设备的本地服务帐户被指派“身份验证后模拟客户端”用户权限。

下面的组件也拥有这种用户权限:由服务控制管理器启动的服务,由组件对象模型(COM)基础结构启动的并配置为在特定帐户下运行的COM服务器.

 

 

SeBackupPrivilege 允许文件内容检索,即使文件上的安全描述符可能未授予此类访问权限。 启用了 SeBackupPrivilege 的调用方无需任何基于 ACL 的安全检查。

 

SeRestorePrivilege 允许修改文件内容,即使文件的安全描述符可能不会授予此类访问权限。 此函数还可用于更改所有者和保护。

 

SeChangeNotifyPrivilege 允许向右遍历。 此特权是一个重要的Windows,因为通过持有此特权,可以避免对路径中每个目录执行安全检查的成本。

 

SeManageVolumePrivilege 允许特定的卷级管理操作,例如锁定卷、碎片整理、卷卸除,以及设置 Windows XP 及更高版本上的有效数据长度。 请注意,此特定权限是由主要基于 FSCTL 操作的文件系统驱动程序显式强制实施的。 在这种情况下,文件系统会做出策略决策来强制实施此特权。 安全引用监视器在常规特权检查中确定调用方是否拥有此特权。

 


打赏
关键词: Windows权限

0 评论

发表评论