Changeset 740 for vendor/current/librpc/idl/security.idl
- Timestamp:
- Nov 14, 2012, 12:59:34 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/librpc/idl/security.idl
r414 r740 32 32 interface security 33 33 { 34 35 typedef bitmap lsa_SystemAccessModeFlags lsa_SystemAccessModeFlags; 34 36 35 37 typedef [public,gensize,noprint,nosize,nopull,nopush] struct { … … 263 265 const string SID_BUILTIN_REMOTE_DESKTOP_USERS = "S-1-5-32-555"; 264 266 const string SID_BUILTIN_NETWORK_CONF_OPERATORS = "S-1-5-32-556"; 267 const string SID_BUILTIN_INCOMING_FOREST_TRUST = "S-1-5-32-557"; 268 const string SID_BUILTIN_PERFMON_USERS = "S-1-5-32-558"; 269 const string SID_BUILTIN_PERFLOG_USERS = "S-1-5-32-559"; 270 const string SID_BUILTIN_AUTH_ACCESS = "S-1-5-32-560"; 271 const string SID_BUILTIN_TS_LICENSE_SERVERS = "S-1-5-32-561"; 272 273 /* SECURITY_NT_SERVICE */ 274 const string NAME_NT_SERVICE = "NT SERVICE"; 275 276 const string SID_NT_NT_SERVICE = "S-1-5-80"; 277 const string SID_NT_TRUSTED_INSTALLER = 278 "S-1-5-80-956008885-3418522649-1831038044-1853292631-2271478464"; 265 279 266 280 /* well-known domain RIDs */ 267 const int DOMAIN_RID_LOGON = 9; 268 const int DOMAIN_RID_ADMINISTRATOR = 500; 269 const int DOMAIN_RID_GUEST = 501; 270 const int DOMAIN_RID_KRBTGT = 502; 271 const int DOMAIN_RID_ADMINS = 512; 272 const int DOMAIN_RID_USERS = 513; 273 const int DOMAIN_RID_GUESTS = 514; 274 const int DOMAIN_RID_DOMAIN_MEMBERS = 515; 275 const int DOMAIN_RID_DCS = 516; 276 const int DOMAIN_RID_CERT_ADMINS = 517; 277 const int DOMAIN_RID_SCHEMA_ADMINS = 518; 278 const int DOMAIN_RID_ENTERPRISE_ADMINS = 519; 279 const int DOMAIN_RID_POLICY_ADMINS = 520; 280 281 282 /* 283 privilege IDs. Please keep the IDs below 64. If we get more 284 than 64 then we need to change security_token 285 */ 281 const int DOMAIN_RID_LOGON = 9; 282 const int DOMAIN_RID_ENTERPRISE_READONLY_DCS = 498; 283 const int DOMAIN_RID_ADMINISTRATOR = 500; 284 const int DOMAIN_RID_GUEST = 501; 285 const int DOMAIN_RID_KRBTGT = 502; 286 const int DOMAIN_RID_ADMINS = 512; 287 const int DOMAIN_RID_USERS = 513; 288 const int DOMAIN_RID_GUESTS = 514; 289 const int DOMAIN_RID_DOMAIN_MEMBERS = 515; 290 const int DOMAIN_RID_DCS = 516; 291 const int DOMAIN_RID_CERT_ADMINS = 517; 292 const int DOMAIN_RID_SCHEMA_ADMINS = 518; 293 const int DOMAIN_RID_ENTERPRISE_ADMINS = 519; 294 const int DOMAIN_RID_POLICY_ADMINS = 520; 295 const int DOMAIN_RID_READONLY_DCS = 521; 296 const int DOMAIN_RID_RAS_SERVERS = 553; 297 const int DOMAIN_RID_RODC_ALLOW = 571; 298 const int DOMAIN_RID_RODC_DENY = 572; 299 300 /* well-known builtin RIDs */ 301 const int BUILTIN_RID_ADMINISTRATORS = 544; 302 const int BUILTIN_RID_USERS = 545; 303 const int BUILTIN_RID_GUESTS = 546; 304 const int BUILTIN_RID_POWER_USERS = 547; 305 const int BUILTIN_RID_ACCOUNT_OPERATORS = 548; 306 const int BUILTIN_RID_SERVER_OPERATORS = 549; 307 const int BUILTIN_RID_PRINT_OPERATORS = 550; 308 const int BUILTIN_RID_BACKUP_OPERATORS = 551; 309 const int BUILTIN_RID_REPLICATOR = 552; 310 const int BUILTIN_RID_RAS_SERVERS = 553; 311 const int BUILTIN_RID_PRE_2K_ACCESS = 554; 312 const int BUILTIN_RID_REMOTE_DESKTOP_USERS = 555; 313 const int BUILTIN_RID_NETWORK_CONF_OPERATORS = 556; 314 const int BUILTIN_RID_INCOMING_FOREST_TRUST = 557; 315 const int BUILTIN_RID_PERFMON_USERS = 558; 316 const int BUILTIN_RID_PERFLOG_USERS = 559; 317 const int BUILTIN_RID_AUTH_ACCESS = 560; 318 const int BUILTIN_RID_TS_LICENSE_SERVERS = 561; 319 320 /******************************************************************** 321 This is a list of privileges reported by a WIndows 2008 R2 DC 322 just for reference purposes (and I know the LUID is not guaranteed 323 across reboots): 324 325 0x00000002 SeCreateTokenPrivilege "Create a token object" 326 0x00000003 SeAssignPrimaryTokenPrivilege "Replace a process level token" 327 0x00000004 SeLockMemoryPrivilege "Lock pages in memory" 328 0x00000005 SeIncreaseQuotaPrivilege "Adjust memory quotas for a process" 329 0x00000006 SeMachineAccountPrivilege "Add workstations to domain" 330 0x00000007 SeTcbPrivilege "Act as part of the operating system" 331 0x00000008 SeSecurityPrivilege "Manage auditing and security log" 332 0x00000009 SeTakeOwnershipPrivilege "Take ownership of files or other objects" 333 0x0000000a SeLoadDriverPrivilege "Load and unload device drivers" 334 0x0000000b SeSystemProfilePrivilege "Profile system performance" 335 0x0000000c SeSystemtimePrivilege "Change the system time" 336 0x0000000d SeProfileSingleProcessPrivilege "Profile single process" 337 0x0000000e SeIncreaseBasePriorityPrivilege "Increase scheduling priority" 338 0x0000000f SeCreatePagefilePrivilege "Create a pagefile" 339 0x00000010 SeCreatePermanentPrivilege "Create permanent shared objects" 340 0x00000011 SeBackupPrivilege "Back up files and directories" 341 0x00000012 SeRestorePrivilege "Restore files and directories" 342 0x00000013 SeShutdownPrivilege "Shut down the system" 343 0x00000014 SeDebugPrivilege "Debug programs" 344 0x00000015 SeAuditPrivilege "Generate security audits" 345 0x00000016 SeSystemEnvironmentPrivilege "Modify firmware environment values" 346 0x00000017 SeChangeNotifyPrivilege "Bypass traverse checking" 347 0x00000018 SeRemoteShutdownPrivilege "Force shutdown from a remote system" 348 0x00000019 SeUndockPrivilege "Remove computer from docking station" 349 0x0000001a SeSyncAgentPrivilege "Synchronize directory service data" 350 0x0000001b SeEnableDelegationPrivilege "Enable computer and user accounts to be trusted for delegation" 351 0x0000001c SeManageVolumePrivilege "Perform volume maintenance tasks" 352 0x0000001d SeImpersonatePrivilege "Impersonate a client after authentication" 353 0x0000001e SeCreateGlobalPrivilege "Create global objects" 354 0x0000001f SeTrustedCredManAccessPrivilege "Access Credential Manager as a trusted caller" 355 0x00000020 SeRelabelPrivilege "Modify an object label" 356 0x00000021 SeIncreaseWorkingSetPrivilege "Increase a process working set" 357 0x00000022 SeTimeZonePrivilege "Change the time zone" 358 0x00000023 SeCreateSymbolicLinkPrivilege "Create symbolic links" 359 360 ********************************************************************/ 361 362 /* LUID values for privileges known about by Samba (bottom 32 bits of enum, top bits are 0) */ 363 364 /* we have to define the LUID here due to a horrible check by printmig.exe 365 that requires the SeBackupPrivilege match what is in Windows. So match 366 those that we implement and start Samba privileges at 0x1001 */ 367 286 368 typedef enum { 287 SEC_PRIV_SECURITY = 1, 288 SEC_PRIV_BACKUP = 2, 289 SEC_PRIV_RESTORE = 3, 290 SEC_PRIV_SYSTEMTIME = 4, 291 SEC_PRIV_SHUTDOWN = 5, 292 SEC_PRIV_REMOTE_SHUTDOWN = 6, 293 SEC_PRIV_TAKE_OWNERSHIP = 7, 294 SEC_PRIV_DEBUG = 8, 295 SEC_PRIV_SYSTEM_ENVIRONMENT = 9, 296 SEC_PRIV_SYSTEM_PROFILE = 10, 297 SEC_PRIV_PROFILE_SINGLE_PROCESS = 11, 298 SEC_PRIV_INCREASE_BASE_PRIORITY = 12, 299 SEC_PRIV_LOAD_DRIVER = 13, 300 SEC_PRIV_CREATE_PAGEFILE = 14, 301 SEC_PRIV_INCREASE_QUOTA = 15, 302 SEC_PRIV_CHANGE_NOTIFY = 16, 303 SEC_PRIV_UNDOCK = 17, 304 SEC_PRIV_MANAGE_VOLUME = 18, 305 SEC_PRIV_IMPERSONATE = 19, 306 SEC_PRIV_CREATE_GLOBAL = 20, 307 SEC_PRIV_ENABLE_DELEGATION = 21, 308 SEC_PRIV_INTERACTIVE_LOGON = 22, 309 SEC_PRIV_NETWORK_LOGON = 23, 310 SEC_PRIV_REMOTE_INTERACTIVE_LOGON = 24, 311 SEC_PRIV_MACHINE_ACCOUNT = 25 369 SEC_PRIV_INVALID = 0x0, 370 SEC_PRIV_INCREASE_QUOTA = 0x5, 371 SEC_PRIV_MACHINE_ACCOUNT = 0x6, 372 SEC_PRIV_SECURITY = 0x8, 373 SEC_PRIV_TAKE_OWNERSHIP = 0x09, 374 SEC_PRIV_LOAD_DRIVER = 0x0a, 375 SEC_PRIV_SYSTEM_PROFILE = 0x0b, 376 SEC_PRIV_SYSTEMTIME = 0x0c, 377 SEC_PRIV_PROFILE_SINGLE_PROCESS = 0x0d, 378 SEC_PRIV_INCREASE_BASE_PRIORITY = 0x0e, 379 SEC_PRIV_CREATE_PAGEFILE = 0x0f, 380 SEC_PRIV_BACKUP = 0x11, 381 SEC_PRIV_RESTORE = 0x12, 382 SEC_PRIV_SHUTDOWN = 0x13, 383 SEC_PRIV_DEBUG = 0x14, 384 SEC_PRIV_SYSTEM_ENVIRONMENT = 0x16, 385 SEC_PRIV_CHANGE_NOTIFY = 0x17, 386 SEC_PRIV_REMOTE_SHUTDOWN = 0x18, 387 SEC_PRIV_UNDOCK = 0x19, 388 SEC_PRIV_ENABLE_DELEGATION = 0x1b, 389 SEC_PRIV_MANAGE_VOLUME = 0x1c, 390 SEC_PRIV_IMPERSONATE = 0x1d, 391 SEC_PRIV_CREATE_GLOBAL = 0x1e, 392 /* Samba-specific privs */ 393 SEC_PRIV_PRINT_OPERATOR = 0x1001, 394 SEC_PRIV_ADD_USERS = 0x1002, 395 SEC_PRIV_DISK_OPERATOR = 0x1003 312 396 } sec_privilege; 313 397 398 399 /* Bitmap of privilege values for internal use only. We need 400 * our own bitmap here as privilages.tdb records these values 401 * as a bitmap (privilages.ldb uses the string forms). 402 */ 403 typedef [bitmap64bit] bitmap { 404 SEC_PRIV_MACHINE_ACCOUNT_BIT = 0x00000010, 405 406 /* Samba-specific privs */ 407 SEC_PRIV_PRINT_OPERATOR_BIT = 0x00000020, 408 SEC_PRIV_ADD_USERS_BIT = 0x00000040, 409 SEC_PRIV_DISK_OPERATOR_BIT = 0x00000080, 410 411 SEC_PRIV_REMOTE_SHUTDOWN_BIT = 0x00000100, 412 SEC_PRIV_BACKUP_BIT = 0x00000200, 413 SEC_PRIV_RESTORE_BIT = 0x00000400, 414 SEC_PRIV_TAKE_OWNERSHIP_BIT = 0x00000800, 415 /* End of privilages implemented before merge to common code */ 416 417 SEC_PRIV_INCREASE_QUOTA_BIT = 0x00001000, 418 SEC_PRIV_SECURITY_BIT = 0x00002000, 419 SEC_PRIV_LOAD_DRIVER_BIT = 0x00004000, 420 SEC_PRIV_SYSTEM_PROFILE_BIT = 0x00008000, 421 SEC_PRIV_SYSTEMTIME_BIT = 0x00010000, 422 SEC_PRIV_PROFILE_SINGLE_PROCESS_BIT = 0x00020000, 423 SEC_PRIV_INCREASE_BASE_PRIORITY_BIT = 0x00040000, 424 SEC_PRIV_CREATE_PAGEFILE_BIT = 0x00080000, 425 SEC_PRIV_SHUTDOWN_BIT = 0x00100000, 426 SEC_PRIV_DEBUG_BIT = 0x00200000, 427 SEC_PRIV_SYSTEM_ENVIRONMENT_BIT = 0x00400000, 428 SEC_PRIV_CHANGE_NOTIFY_BIT = 0x00800000, 429 SEC_PRIV_UNDOCK_BIT = 0x01000000, 430 SEC_PRIV_ENABLE_DELEGATION_BIT = 0x02000000, 431 SEC_PRIV_MANAGE_VOLUME_BIT = 0x04000000, 432 SEC_PRIV_IMPERSONATE_BIT = 0x08000000, 433 SEC_PRIV_CREATE_GLOBAL_BIT = 0x10000000 434 } se_privilege; 435 436 typedef [bitmap32bit] bitmap { 437 LSA_POLICY_MODE_INTERACTIVE = 0x00000001, 438 LSA_POLICY_MODE_NETWORK = 0x00000002, 439 LSA_POLICY_MODE_BATCH = 0x00000004, 440 LSA_POLICY_MODE_SERVICE = 0x00000010, 441 LSA_POLICY_MODE_PROXY = 0x00000020, 442 LSA_POLICY_MODE_DENY_INTERACTIVE = 0x00000040, 443 LSA_POLICY_MODE_DENY_NETWORK = 0x00000080, 444 LSA_POLICY_MODE_DENY_BATCH = 0x00000100, 445 LSA_POLICY_MODE_DENY_SERVICE = 0x00000200, 446 LSA_POLICY_MODE_REMOTE_INTERACTIVE = 0x00000400, 447 LSA_POLICY_MODE_DENY_REMOTE_INTERACTIVE = 0x00000800, 448 LSA_POLICY_MODE_ALL = 0x00000FF7, 449 LSA_POLICY_MODE_ALL_NT4 = 0x00000037 450 } lsa_SystemAccessModeFlags; 314 451 315 452 typedef [public,bitmap8bit] bitmap { … … 372 509 security_ace_type type; /* SEC_ACE_TYPE_* */ 373 510 security_ace_flags flags; /* SEC_ACE_FLAG_* */ 374 [value(ndr_size_security_ace(r,ndr-> iconv_convenience,ndr->flags))] uint16 size;511 [value(ndr_size_security_ace(r,ndr->flags))] uint16 size; 375 512 uint32 access_mask; 376 513 [switch_is(type)] security_ace_object_ctr object; … … 387 524 typedef [public,gensize,nosize] struct { 388 525 security_acl_revision revision; 389 [value(ndr_size_security_acl(r,ndr-> iconv_convenience,ndr->flags))] uint16 size;526 [value(ndr_size_security_acl(r,ndr->flags))] uint16 size; 390 527 [range(0,1000)] uint32 num_aces; 391 528 security_ace aces[num_aces]; … … 429 566 430 567 typedef [public] struct { 431 [range(0,0x40000),value(ndr_size_security_descriptor(sd,ndr-> iconv_convenience,ndr->flags))] uint32 sd_size;568 [range(0,0x40000),value(ndr_size_security_descriptor(sd,ndr->flags))] uint32 sd_size; 432 569 [subcontext(4)] security_descriptor *sd; 433 570 } sec_desc_buf; 434 571 572 /* This is not yet sent over the network, but is simply defined in IDL */ 435 573 typedef [public] struct { 436 dom_sid *user_sid;437 dom_sid *group_sid;438 574 uint32 num_sids; 439 [size_is(num_sids)] dom_sid *sids[*];440 udlongprivilege_mask;441 security_acl *default_dacl;575 [size_is(num_sids)] dom_sid sids[*]; 576 se_privilege privilege_mask; 577 lsa_SystemAccessModeFlags rights_mask; 442 578 } security_token; 579 580 /* This is not yet sent over the network, but is simply defined in IDL */ 581 typedef [public] struct { 582 uid_t uid; 583 uid_t gid; 584 uint32 ngroups; 585 [size_is(ngroups)] gid_t groups[*]; 586 } security_unix_token; 443 587 444 588 /* bits that determine which parts of a security descriptor … … 470 614 SEC_GROUP_FROM_PARENT = 0x00000010 471 615 } security_autoinherit; 616 617 /***************************************************************/ 618 /* Extended right guids */ 619 620 const string GUID_DRS_ALLOCATE_RIDS = "1abd7cf8-0a99-11d1-adbb-00c04fd8d5cd"; 621 const string GUID_DRS_CHANGE_DOMAIN_MASTER = "014bf69c-7b3b-11d1-85f6-08002be74fab"; 622 const string GUID_DRS_CHANGE_INFR_MASTER = "cc17b1fb-33d9-11d2-97d4-00c04fd8d5cd"; 623 const string GUID_DRS_CHANGE_PDC = "bae50096-4752-11d1-9052-00c04fc2d4cf"; 624 const string GUID_DRS_CHANGE_RID_MASTER = "d58d5f36-0a98-11d1-adbb-00c04fd8d5cd"; 625 const string GUID_DRS_CHANGE_SCHEMA_MASTER = "e12b56b6-0a95-11d1-adbb-00c04fd8d5cd"; 626 const string GUID_DRS_GET_CHANGES = "1131f6aa-9c07-11d1-f79f-00c04fc2dcd2"; 627 const string GUID_DRS_GET_ALL_CHANGES = "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2"; 628 const string GUID_DRS_GET_FILTERED_ATTRIBUTES = "89e95b76-444d-4c62-991a-0facbeda640c"; 629 const string GUID_DRS_MANAGE_TOPOLOGY = "1131f6ac-9c07-11d1-f79f-00c04fc2dcd2"; 630 const string GUID_DRS_MONITOR_TOPOLOGY = "f98340fb-7c5b-4cdb-a00b-2ebdfa115a96"; 631 const string GUID_DRS_REPL_SYNCRONIZE = "1131f6ab-9c07-11d1-f79f-00c04fc2dcd2"; 632 const string GUID_DRS_RO_REPL_SECRET_SYNC = "1131f6ae-9c07-11d1-f79f-00c04fc2dcd2"; 633 const string GUID_DRS_USER_CHANGE_PASSWORD = "ab721a53-1e2f-11d0-9819-00aa0040529b"; 634 const string GUID_DRS_FORCE_CHANGE_PASSWORD = "00299570-246d-11d0-a768-00aa006e0529"; 635 636 /***************************************************************/ 637 /* validated writes guids */ 638 const string GUID_DRS_VALIDATE_SPN = "f3a64788-5306-11d1-a9c5-0000f80367c1"; 639 const string GUID_DRS_SELF_MEMBERSHIP = "bf9679c0-0de6-11d0-a285-00aa003049e2"; 640 const string GUID_DRS_DNS_HOST_NAME = "72e39547-7b18-11d1-adef-00c04fd8d5cd"; 641 const string GUID_DRS_ADD_DNS_HOST_NAME = "80863791-dbe9-4eb8-837e-7f0ab55d9ac7"; 642 const string GUID_DRS_BEHAVIOR_VERSION = "d31a8757-2447-4545-8081-3bb610cacbf2"; 643 644 /* A type to describe the mapping of generic access rights to object 645 specific access rights. */ 646 647 typedef struct { 648 uint32 generic_read; 649 uint32 generic_write; 650 uint32 generic_execute; 651 uint32 generic_all; 652 } generic_mapping; 653 654 typedef struct { 655 uint32 std_read; 656 uint32 std_write; 657 uint32 std_execute; 658 uint32 std_all; 659 } standard_mapping; 472 660 }
Note:
See TracChangeset
for help on using the changeset viewer.