1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 /* 22 * adt_event.h 23 * 24 * Copyright 2007 Sun Microsystems, Inc. All rights reserved. 25 * Use is subject to license terms. 26 * 27 * AUTOMATICALLY GENERATED CODE; DO NOT EDIT; CONTACT AUDIT PROJECT 28 * 29 * This is an evolving interface; additions will be made without 30 * notice. It is also part of a contract private interface and 31 * any changes made that are not upward compatible are subject to 32 * the contract's rules. 33 */ 34 35 #ifndef _ADT_EVENT_H 36 #define _ADT_EVENT_H 37 38 #pragma ident "%Z%%M% %I% %E% SMI" 39 40 #include <bsm/adt.h> 41 42 #ifdef __cplusplus 43 extern "C" { 44 #endif 45 46 /* 47 * adt_put_event() status values. Positive values are for kernel-generated 48 * failure, -1 for user-space. For ADT_SUCCESS, the adt_put_event() return_val 49 * is not used; the convention is to set it to ADT_SUCCESS. 50 */ 51 #define ADT_SUCCESS 0 52 #define ADT_FAILURE -1 53 54 #define ADT_FAIL_PAM 2000 55 #define ADT_FAIL_VALUE 1000 56 enum adt_fail_value { 57 ADT_FAIL_VALUE_PW_ATTR = 1000, /* Attribute update */ 58 ADT_FAIL_VALUE_PW, /* Password update */ 59 ADT_FAIL_VALUE_USERNAME, /* bad username */ 60 ADT_FAIL_VALUE_AUTH, /* authorization failed */ 61 ADT_FAIL_VALUE_UID, /* bad uid */ 62 ADT_FAIL_VALUE_UNKNOWN, /* unknown failure */ 63 ADT_FAIL_VALUE_EXPIRED, /* password expired */ 64 ADT_FAIL_VALUE_ACCOUNT_LOCKED, /* Account is locked */ 65 ADT_FAIL_VALUE_BAD_DIALUP, /* Bad dial up */ 66 ADT_FAIL_VALUE_BAD_ID, /* Invalid ID */ 67 ADT_FAIL_VALUE_BAD_PW, /* Invalid password */ 68 ADT_FAIL_VALUE_CONSOLE, /* Not on console */ 69 ADT_FAIL_VALUE_MAX_TRIES, /* Too many failed attempts */ 70 ADT_FAIL_VALUE_PROTOCOL_FAILURE, /* Protocol failure */ 71 ADT_FAIL_VALUE_EXCLUDED_USER, /* Excluded user */ 72 ADT_FAIL_VALUE_ANON_USER, /* No anonymous */ 73 ADT_FAIL_VALUE_BAD_CMD, /* Invalid command */ 74 ADT_FAIL_VALUE_BAD_TTY, /* Standard input not a tty line */ 75 ADT_FAIL_VALUE_PROGRAM, /* Program failure */ 76 ADT_FAIL_VALUE_CHDIR_FAILED, /* chdir to home directory */ 77 ADT_FAIL_VALUE_INPUT_OVERFLOW, /* Input line too long. */ 78 ADT_FAIL_VALUE_DEVICE_PERM, /* login device override */ 79 ADT_FAIL_VALUE_AUTH_BYPASS, /* authorization bypass */ 80 ADT_FAIL_VALUE_LOGIN_DISABLED /* login disabled */ 81 }; 82 /* Deprecated message list */ 83 enum adt_login_text { 84 ADT_LOGIN_NO_MSG, /* (no token will be generated) */ 85 ADT_LOGIN_ACCOUNT_LOCKED, /* Account is locked */ 86 ADT_LOGIN_BAD_DIALUP, /* Bad dial up */ 87 ADT_LOGIN_BAD_ID, /* Invalid ID */ 88 ADT_LOGIN_BAD_PW, /* Invalid password */ 89 ADT_LOGIN_CONSOLE, /* Not on console */ 90 ADT_LOGIN_MAX_TRIES, /* Too many failed attempts */ 91 ADT_LOGIN_PROTOCOL_FAILURE, /* Protocol failure */ 92 ADT_LOGIN_EXCLUDED_USER, /* Excluded user */ 93 ADT_LOGIN_ANON_USER /* No anonymous */ 94 }; 95 #define ADT_admin_authenticate 3 96 #define ADT_attach 42 97 #define ADT_detach 43 98 #define ADT_dladm_create_secobj 47 99 #define ADT_dladm_delete_secobj 48 100 #define ADT_file_copy 50 101 #define ADT_file_relabel 49 102 #define ADT_filesystem_add 4 103 #define ADT_filesystem_delete 5 104 #define ADT_filesystem_modify 6 105 #define ADT_inetd_connect 34 106 #define ADT_inetd_copylimit 36 107 #define ADT_inetd_failrate 37 108 #define ADT_inetd_ratelimit 35 109 #define ADT_init_solaris 32 110 #define ADT_login 25 111 #define ADT_logout 1 112 #define ADT_network_add 7 113 #define ADT_network_delete 8 114 #define ADT_network_modify 9 115 #define ADT_newgrp_login 41 116 #define ADT_passwd 27 117 #define ADT_pool_export 46 118 #define ADT_pool_import 45 119 #define ADT_printer_add 10 120 #define ADT_printer_delete 11 121 #define ADT_printer_modify 12 122 #define ADT_prof_cmd 24 123 #define ADT_remove 44 124 #define ADT_rlogin 28 125 #define ADT_role_login 13 126 #define ADT_role_logout 40 127 #define ADT_scheduledjob_add 14 128 #define ADT_scheduledjob_delete 15 129 #define ADT_scheduledjob_modify 16 130 #define ADT_screenlock 26 131 #define ADT_screenunlock 31 132 #define ADT_serialport_add 17 133 #define ADT_serialport_delete 18 134 #define ADT_serialport_modify 19 135 #define ADT_ssh 2 136 #define ADT_su 30 137 #define ADT_su_logout 39 138 #define ADT_telnet 29 139 #define ADT_uauth 20 140 #define ADT_usermgr_add 21 141 #define ADT_usermgr_delete 22 142 #define ADT_usermgr_modify 23 143 #define ADT_zlogin 38 144 #define ADT_zone_state 33 145 146 147 struct adt_admin_authenticate { /* ADT_admin_authenticate */ 148 enum adt_login_text message; /* optional */ 149 }; 150 typedef struct adt_admin_authenticate adt_admin_authenticate_t; 151 152 struct adt_attach { /* ADT_attach */ 153 char *auth_used; /* required */ 154 char *mount_point; /* required */ 155 char *device; /* required */ 156 char *options; /* optional */ 157 }; 158 typedef struct adt_attach adt_attach_t; 159 160 struct adt_detach { /* ADT_detach */ 161 char *auth_used; /* required */ 162 char *mount_point; /* required */ 163 char *device; /* required */ 164 char *options; /* optional */ 165 }; 166 typedef struct adt_detach adt_detach_t; 167 168 struct adt_dladm_create_secobj { /* ADT_dladm_create_secobj */ 169 char *auth_used; /* required */ 170 char *obj_class; /* required */ 171 char *obj_name; /* required */ 172 }; 173 typedef struct adt_dladm_create_secobj adt_dladm_create_secobj_t; 174 175 struct adt_dladm_delete_secobj { /* ADT_dladm_delete_secobj */ 176 char *auth_used; /* required */ 177 char *obj_class; /* required */ 178 char *obj_name; /* required */ 179 }; 180 typedef struct adt_dladm_delete_secobj adt_dladm_delete_secobj_t; 181 182 struct adt_file_copy { /* ADT_file_copy */ 183 char *auth_used; /* required */ 184 char *src_file; /* required */ 185 m_label_t *src_label; /* required */ 186 char *dst_file; /* required */ 187 m_label_t *dst_label; /* required */ 188 }; 189 typedef struct adt_file_copy adt_file_copy_t; 190 191 struct adt_file_relabel { /* ADT_file_relabel */ 192 char *auth_used; /* required */ 193 char *file; /* required */ 194 m_label_t *src_label; /* required */ 195 m_label_t *dst_label; /* required */ 196 }; 197 typedef struct adt_file_relabel adt_file_relabel_t; 198 199 struct adt_filesystem_add { /* ADT_filesystem_add */ 200 char *object_name; /* required */ 201 char *domain; /* optional */ 202 char *name_service; /* required */ 203 char *auth_used; /* optional */ 204 char *initial_values; /* required */ 205 }; 206 typedef struct adt_filesystem_add adt_filesystem_add_t; 207 208 struct adt_filesystem_delete { /* ADT_filesystem_delete */ 209 char *object_name; /* required */ 210 char *domain; /* optional */ 211 char *name_service; /* required */ 212 char *auth_used; /* optional */ 213 char *delete_values; /* required */ 214 }; 215 typedef struct adt_filesystem_delete adt_filesystem_delete_t; 216 217 struct adt_filesystem_modify { /* ADT_filesystem_modify */ 218 char *object_name; /* required */ 219 char *domain; /* optional */ 220 char *name_service; /* required */ 221 char *auth_used; /* optional */ 222 char *changed_values; /* required */ 223 }; 224 typedef struct adt_filesystem_modify adt_filesystem_modify_t; 225 226 struct adt_inetd_connect { /* ADT_inetd_connect */ 227 char *service_name; /* optional */ 228 uint32_t ip_type; /* required */ 229 uint16_t ip_remote_port; /* required */ 230 uint16_t ip_local_port; /* required */ 231 uint32_t ip_adr[4]; /* required */ 232 char *cmd; /* required */ 233 priv_set_t *privileges; /* required */ 234 }; 235 typedef struct adt_inetd_connect adt_inetd_connect_t; 236 237 struct adt_inetd_copylimit { /* ADT_inetd_copylimit */ 238 char *service_name; /* optional */ 239 char *limit; /* required */ 240 }; 241 typedef struct adt_inetd_copylimit adt_inetd_copylimit_t; 242 243 struct adt_inetd_failrate { /* ADT_inetd_failrate */ 244 char *service_name; /* optional */ 245 char *values; /* required */ 246 }; 247 typedef struct adt_inetd_failrate adt_inetd_failrate_t; 248 249 struct adt_inetd_ratelimit { /* ADT_inetd_ratelimit */ 250 char *service_name; /* optional */ 251 char *limit; /* required */ 252 }; 253 typedef struct adt_inetd_ratelimit adt_inetd_ratelimit_t; 254 255 struct adt_init_solaris { /* ADT_init_solaris */ 256 char *info; /* optional */ 257 }; 258 typedef struct adt_init_solaris adt_init_solaris_t; 259 260 struct adt_login { /* ADT_login */ 261 enum adt_login_text message; /* optional */ 262 }; 263 typedef struct adt_login adt_login_t; 264 265 struct adt_logout { /* ADT_logout */ 266 char *user_name; /* optional (format: logout %s) */ 267 }; 268 typedef struct adt_logout adt_logout_t; 269 270 struct adt_network_add { /* ADT_network_add */ 271 char *object_name; /* required */ 272 char *domain; /* optional */ 273 char *name_service; /* required */ 274 char *auth_used; /* optional */ 275 char *initial_values; /* required */ 276 }; 277 typedef struct adt_network_add adt_network_add_t; 278 279 struct adt_network_delete { /* ADT_network_delete */ 280 char *object_name; /* required */ 281 char *domain; /* optional */ 282 char *name_service; /* required */ 283 char *auth_used; /* optional */ 284 char *delete_values; /* required */ 285 }; 286 typedef struct adt_network_delete adt_network_delete_t; 287 288 struct adt_network_modify { /* ADT_network_modify */ 289 char *object_name; /* required */ 290 char *domain; /* optional */ 291 char *name_service; /* required */ 292 char *auth_used; /* optional */ 293 char *changed_values; /* required */ 294 }; 295 typedef struct adt_network_modify adt_network_modify_t; 296 297 struct adt_newgrp_login { /* ADT_newgrp_login */ 298 char *groupname; /* required */ 299 }; 300 typedef struct adt_newgrp_login adt_newgrp_login_t; 301 302 struct adt_passwd { /* ADT_passwd */ 303 char *username; /* optional */ 304 }; 305 typedef struct adt_passwd adt_passwd_t; 306 307 struct adt_pool_export { /* ADT_pool_export */ 308 char *auth_used; /* required */ 309 char *pool; /* required */ 310 char *device; /* required */ 311 }; 312 typedef struct adt_pool_export adt_pool_export_t; 313 314 struct adt_pool_import { /* ADT_pool_import */ 315 char *auth_used; /* required */ 316 char *pool; /* required */ 317 char *device; /* required */ 318 }; 319 typedef struct adt_pool_import adt_pool_import_t; 320 321 struct adt_printer_add { /* ADT_printer_add */ 322 char *object_name; /* required */ 323 char *domain; /* optional */ 324 char *name_service; /* required */ 325 char *auth_used; /* optional */ 326 char *initial_values; /* required */ 327 }; 328 typedef struct adt_printer_add adt_printer_add_t; 329 330 struct adt_printer_delete { /* ADT_printer_delete */ 331 char *object_name; /* required */ 332 char *domain; /* optional */ 333 char *name_service; /* required */ 334 char *auth_used; /* optional */ 335 char *delete_values; /* required */ 336 }; 337 typedef struct adt_printer_delete adt_printer_delete_t; 338 339 struct adt_printer_modify { /* ADT_printer_modify */ 340 char *object_name; /* required */ 341 char *domain; /* optional */ 342 char *name_service; /* required */ 343 char *auth_used; /* optional */ 344 char *changed_values; /* required */ 345 }; 346 typedef struct adt_printer_modify adt_printer_modify_t; 347 348 struct adt_prof_cmd { /* ADT_prof_cmd */ 349 char *cwdpath; /* required */ 350 char *cmdpath; /* required */ 351 int argc; /* required */ 352 char **argv; /* required */ 353 char **envp; /* required */ 354 uid_t proc_auid; /* required */ 355 uid_t proc_euid; /* required */ 356 gid_t proc_egid; /* required */ 357 uid_t proc_ruid; /* required */ 358 gid_t proc_rgid; /* required */ 359 pid_t proc_pid; /* required */ 360 au_asid_t proc_sid; /* required */ 361 adt_termid_t *proc_termid; /* required */ 362 priv_set_t *limit_set; /* optional */ 363 priv_set_t *inherit_set; /* optional */ 364 }; 365 typedef struct adt_prof_cmd adt_prof_cmd_t; 366 367 struct adt_remove { /* ADT_remove */ 368 char *auth_used; /* required */ 369 char *mount_point; /* optional */ 370 char *device; /* required */ 371 }; 372 typedef struct adt_remove adt_remove_t; 373 374 struct adt_rlogin { /* ADT_rlogin */ 375 enum adt_login_text message; /* optional */ 376 }; 377 typedef struct adt_rlogin adt_rlogin_t; 378 379 struct adt_role_login { /* ADT_role_login */ 380 enum adt_login_text message; /* optional */ 381 }; 382 typedef struct adt_role_login adt_role_login_t; 383 384 struct adt_role_logout { /* ADT_role_logout */ 385 int dummy; /* not used */ 386 }; 387 typedef struct adt_role_logout adt_role_logout_t; 388 389 struct adt_scheduledjob_add { /* ADT_scheduledjob_add */ 390 char *object_name; /* required */ 391 char *domain; /* optional */ 392 char *name_service; /* required */ 393 char *auth_used; /* optional */ 394 char *initial_values; /* required */ 395 }; 396 typedef struct adt_scheduledjob_add adt_scheduledjob_add_t; 397 398 struct adt_scheduledjob_delete { /* ADT_scheduledjob_delete */ 399 char *object_name; /* required */ 400 char *domain; /* optional */ 401 char *name_service; /* required */ 402 char *auth_used; /* optional */ 403 char *delete_values; /* required */ 404 }; 405 typedef struct adt_scheduledjob_delete adt_scheduledjob_delete_t; 406 407 struct adt_scheduledjob_modify { /* ADT_scheduledjob_modify */ 408 char *object_name; /* required */ 409 char *domain; /* optional */ 410 char *name_service; /* required */ 411 char *auth_used; /* optional */ 412 char *changed_values; /* required */ 413 }; 414 typedef struct adt_scheduledjob_modify adt_scheduledjob_modify_t; 415 416 struct adt_screenlock { /* ADT_screenlock */ 417 int dummy; /* not used */ 418 }; 419 typedef struct adt_screenlock adt_screenlock_t; 420 421 struct adt_screenunlock { /* ADT_screenunlock */ 422 int dummy; /* not used */ 423 }; 424 typedef struct adt_screenunlock adt_screenunlock_t; 425 426 struct adt_serialport_add { /* ADT_serialport_add */ 427 char *object_name; /* required */ 428 char *domain; /* optional */ 429 char *name_service; /* required */ 430 char *auth_used; /* optional */ 431 char *initial_values; /* required */ 432 }; 433 typedef struct adt_serialport_add adt_serialport_add_t; 434 435 struct adt_serialport_delete { /* ADT_serialport_delete */ 436 char *object_name; /* required */ 437 char *domain; /* optional */ 438 char *name_service; /* required */ 439 char *auth_used; /* optional */ 440 char *delete_values; /* required */ 441 }; 442 typedef struct adt_serialport_delete adt_serialport_delete_t; 443 444 struct adt_serialport_modify { /* ADT_serialport_modify */ 445 char *object_name; /* required */ 446 char *domain; /* optional */ 447 char *name_service; /* required */ 448 char *auth_used; /* optional */ 449 char *changed_values; /* required */ 450 }; 451 typedef struct adt_serialport_modify adt_serialport_modify_t; 452 453 struct adt_ssh { /* ADT_ssh */ 454 enum adt_login_text message; /* optional */ 455 }; 456 typedef struct adt_ssh adt_ssh_t; 457 458 struct adt_su { /* ADT_su */ 459 char *message; /* optional */ 460 }; 461 typedef struct adt_su adt_su_t; 462 463 struct adt_su_logout { /* ADT_su_logout */ 464 int dummy; /* not used */ 465 }; 466 typedef struct adt_su_logout adt_su_logout_t; 467 468 struct adt_telnet { /* ADT_telnet */ 469 enum adt_login_text message; /* optional */ 470 }; 471 typedef struct adt_telnet adt_telnet_t; 472 473 struct adt_uauth { /* ADT_uauth */ 474 char *auth_used; /* required */ 475 char *objectname; /* required */ 476 }; 477 typedef struct adt_uauth adt_uauth_t; 478 479 struct adt_usermgr_add { /* ADT_usermgr_add */ 480 char *object_name; /* required */ 481 char *domain; /* optional */ 482 char *name_service; /* required */ 483 char *auth_used; /* optional */ 484 char *initial_values; /* required */ 485 }; 486 typedef struct adt_usermgr_add adt_usermgr_add_t; 487 488 struct adt_usermgr_delete { /* ADT_usermgr_delete */ 489 char *object_name; /* required */ 490 char *domain; /* optional */ 491 char *name_service; /* required */ 492 char *auth_used; /* optional */ 493 char *delete_values; /* required */ 494 }; 495 typedef struct adt_usermgr_delete adt_usermgr_delete_t; 496 497 struct adt_usermgr_modify { /* ADT_usermgr_modify */ 498 char *object_name; /* required */ 499 char *domain; /* optional */ 500 char *name_service; /* required */ 501 char *auth_used; /* optional */ 502 char *changed_values; /* required */ 503 }; 504 typedef struct adt_usermgr_modify adt_usermgr_modify_t; 505 506 struct adt_zlogin { /* ADT_zlogin */ 507 char *message; /* optional */ 508 }; 509 typedef struct adt_zlogin adt_zlogin_t; 510 511 struct adt_zone_state { /* ADT_zone_state */ 512 char *new_state; /* required */ 513 char *zonename; /* required */ 514 }; 515 typedef struct adt_zone_state adt_zone_state_t; 516 517 union adt_event_data { 518 adt_admin_authenticate_t adt_admin_authenticate; 519 adt_attach_t adt_attach; 520 adt_detach_t adt_detach; 521 adt_dladm_create_secobj_t adt_dladm_create_secobj; 522 adt_dladm_delete_secobj_t adt_dladm_delete_secobj; 523 adt_file_copy_t adt_file_copy; 524 adt_file_relabel_t adt_file_relabel; 525 adt_filesystem_add_t adt_filesystem_add; 526 adt_filesystem_delete_t adt_filesystem_delete; 527 adt_filesystem_modify_t adt_filesystem_modify; 528 adt_inetd_connect_t adt_inetd_connect; 529 adt_inetd_copylimit_t adt_inetd_copylimit; 530 adt_inetd_failrate_t adt_inetd_failrate; 531 adt_inetd_ratelimit_t adt_inetd_ratelimit; 532 adt_init_solaris_t adt_init_solaris; 533 adt_login_t adt_login; 534 adt_logout_t adt_logout; 535 adt_network_add_t adt_network_add; 536 adt_network_delete_t adt_network_delete; 537 adt_network_modify_t adt_network_modify; 538 adt_newgrp_login_t adt_newgrp_login; 539 adt_passwd_t adt_passwd; 540 adt_pool_export_t adt_pool_export; 541 adt_pool_import_t adt_pool_import; 542 adt_printer_add_t adt_printer_add; 543 adt_printer_delete_t adt_printer_delete; 544 adt_printer_modify_t adt_printer_modify; 545 adt_prof_cmd_t adt_prof_cmd; 546 adt_remove_t adt_remove; 547 adt_rlogin_t adt_rlogin; 548 adt_role_login_t adt_role_login; 549 adt_role_logout_t adt_role_logout; 550 adt_scheduledjob_add_t adt_scheduledjob_add; 551 adt_scheduledjob_delete_t adt_scheduledjob_delete; 552 adt_scheduledjob_modify_t adt_scheduledjob_modify; 553 adt_screenlock_t adt_screenlock; 554 adt_screenunlock_t adt_screenunlock; 555 adt_serialport_add_t adt_serialport_add; 556 adt_serialport_delete_t adt_serialport_delete; 557 adt_serialport_modify_t adt_serialport_modify; 558 adt_ssh_t adt_ssh; 559 adt_su_t adt_su; 560 adt_su_logout_t adt_su_logout; 561 adt_telnet_t adt_telnet; 562 adt_uauth_t adt_uauth; 563 adt_usermgr_add_t adt_usermgr_add; 564 adt_usermgr_delete_t adt_usermgr_delete; 565 adt_usermgr_modify_t adt_usermgr_modify; 566 adt_zlogin_t adt_zlogin; 567 adt_zone_state_t adt_zone_state; 568 }; 569 570 571 #ifndef ADT_PRIVATE 572 #define ADT_PRIVATE 573 574 /* 575 * These interfaces are project private and will change without 576 * notice as needed for the BSM API project. 577 */ 578 579 extern void adt_get_auid(const adt_session_data_t *, au_id_t *); 580 extern void adt_set_auid(const adt_session_data_t *, const au_id_t); 581 582 extern void adt_get_mask(const adt_session_data_t *, au_mask_t *); 583 extern void adt_set_mask(const adt_session_data_t *, const au_mask_t *); 584 585 extern void adt_get_termid(const adt_session_data_t *, au_tid_addr_t *); 586 extern void adt_set_termid(const adt_session_data_t *, 587 const au_tid_addr_t *); 588 589 extern void adt_get_asid(const adt_session_data_t *, au_asid_t *); 590 extern void adt_set_asid(const adt_session_data_t *, const au_asid_t); 591 592 #endif 593 594 #ifdef __cplusplus 595 } 596 #endif 597 598 #endif /* _ADT_EVENT_H */ 599