SECURITY.H
上传用户:xiaogehua
上传日期:2007-01-08
资源大小:1183k
文件大小:7k
源码类别:

操作系统开发

开发平台:

Asm

  1. /*
  2. ;    File              : $Workfile$
  3. ;
  4. ;    Description       : Definitions of common security related structures.
  5. ;
  6. ;    Original Author   : DIGITAL RESEARCH
  7. ;
  8. ;    Last Edited By    : $CALDERA$
  9. ;
  10. ;-----------------------------------------------------------------------;
  11. ;    Copyright Work of Caldera, Inc. All Rights Reserved.
  12. ;      
  13. ;    THIS WORK IS A COPYRIGHT WORK AND CONTAINS CONFIDENTIAL,
  14. ;    PROPRIETARY AND TRADE SECRET INFORMATION OF CALDERA, INC.
  15. ;    ACCESS TO THIS WORK IS RESTRICTED TO (I) CALDERA, INC. EMPLOYEES
  16. ;    WHO HAVE A NEED TO KNOW TO PERFORM TASKS WITHIN THE SCOPE OF
  17. ;    THEIR ASSIGNMENTS AND (II) ENTITIES OTHER THAN CALDERA, INC. WHO
  18. ;    HAVE ACCEPTED THE CALDERA OPENDOS SOURCE LICENSE OR OTHER CALDERA LICENSE
  19. ;    AGREEMENTS. EXCEPT UNDER THE EXPRESS TERMS OF THE CALDERA LICENSE
  20. ;    AGREEMENT NO PART OF THIS WORK MAY BE USED, PRACTICED, PERFORMED,
  21. ;    COPIED, DISTRIBUTED, REVISED, MODIFIED, TRANSLATED, ABRIDGED,
  22. ;    CONDENSED, EXPANDED, COLLECTED, COMPILED, LINKED, RECAST,
  23. ;    TRANSFORMED OR ADAPTED WITHOUT THE PRIOR WRITTEN CONSENT OF
  24. ;    CALDERA, INC. ANY USE OR EXPLOITATION OF THIS WORK WITHOUT
  25. ;    AUTHORIZATION COULD SUBJECT THE PERPETRATOR TO CRIMINAL AND
  26. ;    CIVIL LIABILITY.
  27. ;-----------------------------------------------------------------------;
  28. ;
  29. ;    *** Current Edit History ***
  30. ;    *** End of Current Edit History ***
  31. ;
  32. ;    $Log$
  33. ;
  34. ;    ENDLOG
  35. */
  36. /* All security information files have the following header before any
  37.    data entries. */
  38. typedef struct
  39. {
  40.     UWORD signature; /* file identifier, see SIG_ */
  41.     BYTE version; /* version No., see SECURE_VERSION */
  42.     BYTE crlf[2];
  43. } INF_HEADER_ENTRY;
  44. /* All security info files must be at the following version level
  45.    to be compatible with the definitions in this file. */
  46. #define SECURE_VERSION '0'
  47. #define FNAME_LOGIN_TXT "LOGIN.TXT"
  48. #define FNAME_LOCK_TXT "LOCK.TXT"
  49. #define FNAME_LOGIN_ERR "LOGIN.ERR"
  50. #define FNAME_LOCK_ERR "LOCK.ERR"
  51. /******************************************************************************
  52. User information file.
  53. ******************************************************************************/
  54. /* The following structure defines the contents of a single entry in the
  55.    user information file. This file associates user id numbers, user names,
  56.    group names, etc for all users on a secure Concurrent DOS system.
  57.    The file is in ASCII with one entry per line. Each variable is separated
  58.    by one space character and variables are all left justified space padded.
  59.    The lines are a fixed length, equal to sizeof(USER_INF_ENTRY).
  60.    Entries in the file are sorted on the userid field.
  61.    An example file (where ... indicates absent space padding) -
  62. UI0
  63. 0100 RogerGross  Stellar      rwdr----- C roger  ...   08-23-1990 10:30:52 ...
  64. 0101 Ant         Stellar      rwdr----- C ant    ...   08-22-1990 16:10:08 ...
  65. 0200 Stan        Accounts     rwd------ C stan   ...   08-10-1990 09:27:00 ...
  66. 0900 Julie       Doc          rwdrwdr-- C julie  ...   08-22-1990 08:09:11 ...
  67. */
  68. #define FNAME_USER_INF "USER.INF" /* user information file name */
  69. #define SIG_USER_INF 0x4955 /* file signature "UI" in word order */
  70. #define USERID_LGTH 4
  71. #define SYS_NAME_LGTH 12
  72. #define DEFACCESS_LGTH 9
  73. #define DATE_LGTH 10
  74. #define TIME_LGTH 8
  75. #define CMNT_LGTH 32
  76. typedef struct
  77. {
  78.     BYTE userid [USERID_LGTH+1];
  79.     BYTE loginname [SYS_NAME_LGTH+1];
  80.     BYTE groupname [SYS_NAME_LGTH+1];
  81.     BYTE defaccess [DEFACCESS_LGTH+1];
  82.     BYTE homedrv [2];
  83.     BYTE homedir [PATH_LEN];
  84.     BYTE date [DATE_LGTH+1];  /* mm-dd-yyyy */
  85.     BYTE time [TIME_LGTH+1];  /* hh:mm:ss */
  86.     BYTE comment [CMNT_LGTH+1];
  87.     BYTE crlf [2];
  88. } USER_INF_ENTRY;
  89. #define DEFLT_SU_NAME "Superuser"
  90. #define DEFLT_SU_GROUP "Supergroup"
  91. /******************************************************************************
  92. User password file.
  93. ******************************************************************************/
  94. /* The following structure defines the contents of a single entry in the
  95.    user password file. This file associates user id numbers with passwords
  96.    for all users on a secure Concurrent DOS system.
  97.    The file is in a binary format.
  98.    Entries in the file are sorted on the userid field.
  99. */
  100. #define FNAME_USER_SYS "USER.SYS" /* user password file name */
  101. #define SIG_USER_SYS 0x5355 /* file signature "US" in word order */
  102. typedef struct
  103. {
  104.     UWORD userid;
  105.     ULONG pword;
  106. } USER_SYS_ENTRY;
  107. /******************************************************************************
  108. Login history file.
  109. ******************************************************************************/
  110. /* The following structure defines the contents of a single entry in the
  111.    login.log history file. This file is a history of events on the system
  112.    such as login/out lock and errors. 
  113.    The file is in a binary format.
  114.    New Entries are appended to the file. 
  115. */
  116. #define FNAME_LOGIN_LOG "LOGIN.LOG"
  117. #define SIG_LOGIN_LOG 0x4C4C /* file signature "LL" in word order */
  118. typedef struct
  119. {
  120.     UWORD year; /* 1980 - 2099 */
  121.     UBYTE month;
  122.     UBYTE day;
  123.     UBYTE day_of_week; /* Ignored by ms_setdate */
  124. } SYSDAT;
  125. typedef struct
  126. {
  127.     UBYTE hour; /* (0 - 23) */
  128.     UBYTE minute; /* (0 - 59) */
  129.     UBYTE second; /* (0 - 59) */
  130.     UBYTE hundredth; /* (0 - 99) */
  131. } SYSTIM;
  132. typedef struct
  133. {
  134.     UWORD userid;
  135.     UWORD station;
  136.     WORD event;
  137.     SYSTIM time;
  138.     SYSDAT date;
  139. } LOGIN_LOG_ENTRY;
  140. #define LOG_LOGIN       0
  141. #define LOG_LOGOUT      1
  142. #define LOG_LOCK        2
  143. #define LOG_UNLOCK      3
  144. #define LOG_REBOOT      4
  145. #define LOG_POWERON     5
  146. #define ERR_BASE 0
  147. #define ERR_USERPWORD ERR_BASE-1
  148. #define ERR_NOFILE ERR_BASE-2
  149. #define ERR_OPENFILE ERR_BASE-3
  150. #define ERR_BADFILE ERR_BASE-4
  151. #define ERR_READFILE    ERR_BASE-5
  152. #define ERR_WRITEFILE   ERR_BASE-6
  153. #define ERR_BADID       ERR_BASE-7
  154. #define ERR_FATALSYSTEM ERR_BASE-8
  155. #define ERR_LOGIN       ERR_BASE-9
  156. #define ERR_LOGOUT      ERR_BASE-10
  157. #define ERR_LOCK        ERR_BASE-11
  158. #define ERR_UNLOCK      ERR_BASE-12
  159. /******************************************************************************
  160. Miscellaneous definitions.
  161. ******************************************************************************/
  162. #define SYS_PWORD_MINLEN 3 /* minimum password length */
  163. #define SYS_PWORD_MIN 6 /* minimum pw len (INSTALL only) */
  164. #define SYS_PWORD_MAX SYS_NAME_LGTH
  165. #define ID_NUM(n) ((n)&0x00FF) /* extract user No. from 16 bit id */
  166. #define ID_GROUP(n) ((n)>>8) /* extract group No. from 16 bit id */
  167. #define ID_GRP_USR(g,u) (((g)<<8)+(u)) /* convert group/user to 16 bit id */
  168. /* The following definition is used when accessing USER.SYS, USER.INF, etc.
  169.    Because these files may be open by other processes in a mode which denies
  170.    access to any other several attempts must be made to open them before
  171.    giving up. This definition governs the number of attempts to be made.
  172.    Note that a utility should perform a P_DISPATCH after each unsuccessful
  173.    attempt. */
  174. #define ACCESS_ATTEMPTS 1000
  175. /*******************   E N D   O F   S E C U R I T Y . H   *******************/