home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 2: PC / frozenfish_august_1995.bin / bbs / d09xx / d0905.lha / MultiUser / Auto / multiuser.doc
Text File  |  1993-08-26  |  17KB  |  531 lines

  1. TABLE OF CONTENTS
  2.  
  3. multiuser.library/muAllocUserInfo
  4. multiuser.library/muCheckPasswd
  5. multiuser.library/muFreeUserInfo
  6. multiuser.library/muGetConfigDirLock
  7. multiuser.library/muGetDefProtection
  8. multiuser.library/muGetPasswdDirLock
  9. multiuser.library/muGetTaskOwner
  10. multiuser.library/muGetUserInfo
  11. multiuser.library/muLimitDOSSetProtection
  12. multiuser.library/muLoginA
  13. multiuser.library/muLogoutA
  14. multiuser.library/muPasswd
  15. multiuser.library/muSetDefProtectionA
  16. multiuser.library/muSetProtection
  17. multiuser.library/muAllocUserInfo           multiuser.library/muAllocUserInfo
  18.  
  19.   NAME  muAllocUserInfo()  (V39)
  20.  
  21.     info = muAllocUserInfo();
  22.  
  23.     struct muUserInfo *muAllocUserInfo(void);
  24.     D0
  25.  
  26.   DESCRIPTION
  27.     Allocates  a  muUserInfo structure for you in a future compatible manner.
  28.     This  is  the  only  valid  way  to allocate a muUserInfo structure.  The
  29.     structure will be made empty for you.
  30.  
  31.   INPUTS
  32.     none
  33.  
  34.   RESULT
  35.     info - pointer  to  the  allocated  muUserInfo  structure  or NULL for no
  36.            memory.
  37.  
  38.   BUGS
  39.     none known
  40.  
  41.   SEE ALSO
  42.     muFreeUserInfo(), muGetUserInfo()
  43.  
  44. multiuser.library/muCheckPasswd               multiuser.library/muCheckPasswd
  45.  
  46.   NAME  muCheckPasswd()  (V39)
  47.  
  48.     valid = muCheckPasswd(taglist);
  49.  
  50.     BOOL  muCheckPasswd(struct TagItem *);
  51.     D0                  A0
  52.  
  53.   DESCRIPTION
  54.     Check  whether  the supplied password is the valid password for the owner
  55.     of the current task.
  56.     This  function  is mainly intended to support SysLock look-alike programs
  57.     (cfr.  XLock for the MIT's X Window System).
  58.  
  59.   TAGS
  60.     muT_Password - (STRPTR)
  61.                    the password.
  62.  
  63.   INPUTS
  64.     taglist - a  pointer  to  a taglist (may be NULL).  No tags are currently
  65.               defined.
  66.  
  67.   RESULT
  68.     valid - indicates the password is valid.
  69.  
  70.   NOTE
  71.     This  function  may  be  extended  in future to let the super user (root)
  72.     check passwords for other tasks.
  73.  
  74.   BUGS
  75.     none known
  76.  
  77.   SEE ALSO
  78.     muPasswd()
  79.  
  80. multiuser.library/muFreeUserInfo             multiuser.library/muFreeUserInfo
  81.  
  82.   NAME  muFreeUserInfo()  (V39)
  83.  
  84.     muFreeUserInfo(info);
  85.  
  86.     void muFreeUserInfo(struct muUserInfo *);
  87.                         A0
  88.  
  89.   DESCRIPTION
  90.     Frees a muUserInfo structure allocated with muAllocUserInfo.
  91.  
  92.   INPUTS
  93.     info - a  pointer  to  the muUserInfo structure you want to free.  May be
  94.            NULL.
  95.  
  96.   RESULT
  97.     none
  98.  
  99.   BUGS
  100.     none known
  101.  
  102.   SEE ALSO
  103.     muAllocUserInfo(), muGetUserInfo()
  104.  
  105. multiuser.library/muGetConfigDirLock     multiuser.library/muGetConfigDirLock
  106.  
  107.   NAME  muGetConfigDirLock()  (V39)
  108.  
  109.     lock = muGetConfigDirLock();
  110.  
  111.     BPTR muGetConfigDirLock(void);
  112.     D0
  113.  
  114.   DESCRIPTION
  115.     Get  a shared lock on the directory of the configuration file.  The name
  116.     of  the  configuration  file  is defined in <libraries/multiuser.h>.  If
  117.     this  call  succeeds, you must free the returned lock by yourself.  This
  118.     function may be called only by the super user (root).
  119.  
  120.   INPUTS
  121.     none
  122.  
  123.   RESULT
  124.     lock - the desired lock, or NULL for failure.
  125.  
  126.   BUGS
  127.     none known
  128.  
  129.   SEE ALSO
  130.     muGetPasswdDirLock(), <libraries/multiuser.h>
  131.  
  132. multiuser.library/muGetDefProtection     multiuser.library/muGetDefProtection
  133.  
  134.   NAME  muGetDefProtection()  (V39)
  135.  
  136.     mask = muGetDefProtection(task);
  137.  
  138.     ULONG muGetDefProtection(struct Task *);
  139.     D0                       D0
  140.  
  141.   DESCRIPTION
  142.     Get the default protection bits related to a task.
  143.  
  144.   INPUTS
  145.     task - a  pointer  to  the  task  for  which you want to know the default
  146.            protection bits, or NULL for the current task.
  147.  
  148.   RESULT
  149.     mask - the  default protection bits.  They are in the format like defined
  150.            in <dos/dos.h>.
  151.  
  152.   BUGS
  153.     none known
  154.  
  155.   SEE ALSO
  156.     muSetDefProtectionA(), <dos/dos.h>
  157.  
  158. multiuser.library/muGetPasswdDirLock     multiuser.library/muGetPasswdDirLock
  159.  
  160.   NAME  muGetPasswdDirLock()  (V39)
  161.  
  162.     lock = muGetPasswdDirLock();
  163.  
  164.     BPTR muGetPasswdDirLock(void);
  165.     D0
  166.  
  167.   DESCRIPTION
  168.     Get  a  shared  lock on the directory of the password file.  The name of
  169.     the  password  file is defined in <libraries/multiuser.h>.  If this call
  170.     succeeds,  you  must  free the returned lock by yourself.  This function
  171.     may be called only by the super user (root).
  172.  
  173.   INPUTS
  174.     none
  175.  
  176.   RESULT
  177.     lock - the desired lock, or NULL for failure.
  178.  
  179.   BUGS
  180.     none known
  181.  
  182.   SEE ALSO
  183.     muGetConfigDirLock(), <libraries/multiuser.h>
  184.  
  185. multiuser.library/muGetTaskOwner             multiuser.library/muGetTaskOwner
  186.  
  187.   NAME  muGetTaskOwner()  (V39)
  188.  
  189.     user = muGetTaskOwner(task);
  190.  
  191.     ULONG muGetTaskOwner(struct Task *);
  192.     D0                   D0
  193.  
  194.   DESCRIPTION
  195.     Get the owner of a task.
  196.  
  197.   INPUTS
  198.     task - a pointer to the task of which you want to know the owner, or NULL
  199.            for the current task.
  200.  
  201.   RESULT
  202.     user - the owner of the specified task.  The bits 31-16 specify the owner
  203.            user  id  (uid),  the  bits 15-0 specify the owner group id (gid).
  204.            NULL for nobody.
  205.  
  206.   BUGS
  207.     none known
  208.  
  209.   SEE ALSO
  210.     muGetUserInfo()
  211.  
  212. multiuser.library/muGetUserInfo               multiuser.library/muGetUserInfo
  213.  
  214.   NAME  muGetUserInfo()  (V39)
  215.  
  216.     info = muGetUserInfo(info, keytype);
  217.  
  218.     struct muUserInfo *muGetUserInfo(struct muUserInfo *, ULONG);
  219.     D0                               A0                   D0
  220.  
  221.   DESCRIPTION
  222.     Get  information  about  a user.  You must pass in a muUserInfo structure
  223.     and  a  keytype, which defines the type of information you have filled in
  224.     in  the  muUserInfo  structure  about the wanted user(s).  Valid keytypes
  225.     are:
  226.  
  227.       muKeyType_First         - find  the first user.  You don't have to fill
  228.                                 in any fields in the muUserInfo structure.
  229.       muKeyType_Next          - find  the  next  user.   Use  this only after
  230.                                 you've  made  a  call with muKeyType_First as
  231.                                 keytype.
  232.       muKeyType_UserID        - find  a user with a specific UserID.  Fill in
  233.                                 the     field     UserID    before    calling
  234.                                 muGetUserInfo().   The  search  will  be case
  235.                                 sensitive.
  236.       muKeyType_WUserID       - find  a user with a specific UserID.  Fill in
  237.                                 the     field     UserID    before    calling
  238.                                 muGetUserInfo().   The  search  will  be case
  239.                                 insensitive, wild cards are allowed.
  240.       muKeyType_WUserIDNext   - find  the  next  user with a specific UserID.
  241.                                 Use  this  only after you've made a call with
  242.                                 muKeyType_WUserID as keytype.
  243.       muKeyType_uid           - find a user with a specific uid.  Fill in the
  244.                                 field uid before calling muGetUserInfo().
  245.       muKeyType_gid           - find a user with a specific gid.  Fill in the
  246.                                 field uid before calling muGetUserInfo().
  247.       muKeyType_gidNext       - find  the next user with a specific gid.  Use
  248.                                 this  only  after  you've  made  a  call with
  249.                                 muKeyType_gid as keytype.
  250.       muKeyType_UserName      - find  a  user with a specific UserName.  Fill
  251.                                 in   the   field   UserName   before  calling
  252.                                 muGetUserInfo().   The  search  will  be case
  253.                                 insensitive.
  254.       muKeyType_WUserName     - find  a  user with a specific UserName.  Fill
  255.                                 in   the   field   UserName   before  calling
  256.                                 muGetUserInfo().   The  search  will  be case
  257.                                 insensitive, wild cards are allowed.
  258.       muKeyType_WUserNameNext - find  the next user with a specific UserName.
  259.                                 Use  this  only after you've made a call with
  260.                                 muKeyType_WUserName as keytype.
  261.  
  262.   INPUTS
  263.     info    - a muUserInfo structure, allocated with muAllocUserInfo.
  264.     keytype - the magic keytype.
  265.  
  266.   RESULT
  267.     info - a  pointer  to  the  supplied  muUserInfo structure, or NULL for a
  268.            failure.
  269.  
  270.   NOTE
  271.     Do  not  change  the  contents  of a muUserInfo structure before calls to
  272.     muGetUserInfo()      with      muKeyType_Next,     muKeyType_WUserIDNext,
  273.     muKeyType_gidNext or muKeyType_WUserNameNext.
  274.  
  275.   BUGS
  276.     none known
  277.  
  278.   SEE ALSO
  279.     muAllocUserInfo(), muGetUserInfo(), <libraries/multiuser.h>,
  280.     dos.library/SetOwner()
  281.  
  282. multiuser.library/muLimitDOSSetProtectionmultiuser.library/muLimitDOSSetProtection
  283.  
  284.   NAME  muLimitDOSSetProtection()  (V39)
  285.  
  286.     success = muLimitDOSSetProtection(flag);
  287.  
  288.     BOOL muLimitDOSSetProtection(BOOL);
  289.     D0                           D0
  290.  
  291.   DESCRIPTION
  292.     Limit  dos.library/SetProtection() to change only the protection bits for
  293.     the  owner  of  the  file.   If limiting is turned on, you can change the
  294.     protection  bits for GROUP and OTHER only via muSetProtection().  Default
  295.     limiting is turned off.
  296.  
  297.   INPUTS
  298.     flag - TRUE to turn limiting on, FALSE to turn limiting off.
  299.  
  300.   RESULT
  301.     success - success indicator.
  302.  
  303.   NOTE
  304.     This  function  is useful because a lot of programs change the protection
  305.     bits of a file without knowing about the new GROUP and OTHER flags.
  306.  
  307.   BUGS
  308.     Limiting  will  fail  if  someone  has  an  exclusive lock on the file or
  309.     directory the protection bits will be changed of.
  310.  
  311.   SEE ALSO
  312.     muSetProtection()
  313.  
  314. multiuser.library/muLoginA                         multiuser.library/muLoginA
  315.  
  316.   NAME  muLoginA()  (V39)
  317.  
  318.     user = muLoginA(taglist);
  319.  
  320.     ULONG muLoginA(struct TagItem *);
  321.     D0             A0
  322.  
  323.   DESCRIPTION
  324.     Login  to  the  system  and  remember  the last user.  Use the taglist to
  325.     specify options.
  326.  
  327.   TAGS
  328.     muT_Graphical  - (BOOL)
  329.                      use  a  graphical  login instead of a console alike one.
  330.                      Default is FALSE.
  331.     muT_Input      - (BPTR)
  332.                      specify  the  filehandle  to  read from.  Not used for a
  333.                      graphical login.  Default is Input().
  334.     muT_Output     - (BPTR)
  335.                      specify  the  filehandle  to  write  to.  Not used for a
  336.                      graphical login.  Default is Output().
  337.     muT_PubScrName - (STRPTR)
  338.                      specify  the  public  screen to open the login requester
  339.                      on.   Only  used  for a graphical login.  Default is the
  340.                      default public screen (mostly the Workbench screen).
  341.     muT_Task       - (struct Task *)
  342.                      specify  the  task  you  want  to login.  Of course this
  343.                      works  only  for  your  own tasks (or for tasks owned by
  344.                      nobody),  unless you are the super user (root).  Default
  345.                      is the current task.
  346.     muT_Own        - (BOOL)
  347.                      change  the  owner of the specified task to the owner of
  348.                      the  task  this call is made from.  Of course this works
  349.                      only for tasks owned by nobody, unless you are the super
  350.                      user (root).  Default is FALSE.
  351.     muT_Global     - (BOOL)
  352.                      login  for  all tasks on the same level as the specified
  353.                      one.  Default is FALSE.
  354.     muT_UserID     - (STRPTR)
  355.                      do  not  ask the user for a UserID but use the specified
  356.                      UserID.  Must be used together with muT_Password.
  357.     muT_Password   - (STRPTR)
  358.                      do not ask the user for a Password but use the specified
  359.                      Password.  Must be used together with muT_UserID.
  360.  
  361.   INPUTS
  362.     taglist - a pointer to a taglist (may be NULL).
  363.  
  364.   RESULT
  365.     user - the  user  that  logged in, or NULL for a failure.  The bits 31-16
  366.            specify  the  owner user id (uid), the bits 15-0 specify the owner
  367.            group id (gid).
  368.  
  369.   NOTE
  370.     The  tags muT_UserID and muT_Password are mainly intended to let programs
  371.     change  their  owner to someone else temporarily.  If you want to restore
  372.     the  previous  user  later  you  must be aware of the fact that a call to
  373.     muLogoutA() may invoke a login request!
  374.  
  375.   BUGS
  376.     none known
  377.  
  378.   SEE ALSO
  379.     muLogoutA()
  380.  
  381. multiuser.library/muLogoutA                       multiuser.library/muLogoutA
  382.  
  383.   NAME  muLogoutA()  (V39)
  384.  
  385.     user = muLogoutA(taglist);
  386.  
  387.     ULONG muLogoutA(struct TagItem *);
  388.     D0              A0
  389.  
  390.   DESCRIPTION
  391.     Logout  and  restore the previous user.  If there was no previous user or
  392.     the  previous user was nobody, a login request will appear.  However, the
  393.     behavior  of  this  login request will be slightly different from that of
  394.     muLoginA(), more specifically the following actions will be taken:
  395.  
  396.       - the local variable 'Home' will be set to your home directory.
  397.       - the current directory will be set to your home directory.
  398.       - If  there  exists  a  script  file  called  '.profile'  in  your home
  399.         directory, it will be executed.
  400.  
  401.   TAGS
  402.     muT_Input      - see muLoginA()
  403.     muT_Output     - see muLoginA()
  404.     muT_Graphical  - see muLoginA()
  405.     muT_PubScrName - see muLoginA()
  406.     muT_Task       - see muLoginA()
  407.     muT_Own        - see muLoginA()
  408.     muT_Global     - see muLoginA()
  409.     muT_Quiet      - (BOOL)
  410.                      Never request for a login, simply logout. Default FALSE.
  411.  
  412.   INPUTS
  413.     taglist - a pointer to a taglist (may be NULL).
  414.  
  415.   RESULT
  416.     user - the  user you're now, NULL for nobody.  The bits 31-16 specify the
  417.            owner  user  id  (uid),  the  bits 15-0 specify the owner group id
  418.            (gid).
  419.  
  420.   NOTE
  421.     If  there  was  no  previous user, this routine will not return until you
  422.     enter  a  valid UserID/password pair (unless you used the tag muT_Quiet)!
  423.     However,  this  tag  may  be  removed  in  future  releases  for enhanced
  424.     security.
  425.  
  426.   BUGS
  427.     none known
  428.  
  429.   SEE ALSO
  430.     muLoginA()
  431.  
  432. multiuser.library/muPasswd                         multiuser.library/muPasswd
  433.  
  434.   NAME  muPasswd()  (V39)
  435.  
  436.     success = muPasswd(oldpwd, newpwd);
  437.  
  438.     BOOL muPasswd(STRPTR, STRPTR);
  439.     D0            A0      A1
  440.  
  441.   DESCRIPTION
  442.     Change  the  password  for  the  owner of the task this routine is called
  443.     from.
  444.  
  445.   INPUTS
  446.     oldpwd - your old password.
  447.     newpwd - your new password.
  448.  
  449.   RESULT
  450.     success - indicates a successful password change.
  451.  
  452.   NOTE
  453.     For  the  format  of  the passwd-file, see <libraries/multiuser.h>.  This
  454.     format should be compatible with the Commodore AS255 passwd file.
  455.  
  456.   BUGS
  457.     none known
  458.  
  459.   SEE ALSO
  460.     muCheckPasswd(), <libraries/multiuser.h>
  461.  
  462. multiuser.library/muSetDefProtectionA   multiuser.library/muSetDefProtectionA
  463.  
  464.   NAME  muSetDefProtectionA()  (V39)
  465.  
  466.     success = muSetDefProtectionA(taglist);
  467.  
  468.     BOOL muSetDefProtectionA(struct TagItem);
  469.     D0                       A0
  470.  
  471.   DESCRIPTION
  472.     Set  the default protection bits related to a task.  Of course this works
  473.     only  for  your  own tasks (or for tasks owned by nobody), unless you are
  474.     the super user (root).
  475.  
  476.   TAGS
  477.     muT_Task          - (struct Task *)
  478.                         specify  the  task  you  want  to  change the default
  479.                         protection bits for.  Default is the current task.
  480.     muT_DefProtection - (ULONG)
  481.                         the  default  protection  bits.   They must be in the
  482.                         format like defined in <dos/dos.h> (or take a look at
  483.                         <libraries/multiuser.h>   if   you   don't  have  3.0
  484.                         includes:-).  Default is FIBF_OTR_READ|FIBF_GRP_READ.
  485.     muT_Global        - (BOOL)
  486.                         change  the  default protection bits for all tasks on
  487.                         the  same  level  as  the  specified one.  Default is
  488.                         FALSE.
  489.  
  490.   INPUTS
  491.     taglist - a pointer to a taglist (may be NULL).
  492.  
  493.   RESULT
  494.     success - success indicator.
  495.  
  496.   BUGS
  497.     none known
  498.  
  499.   SEE ALSO
  500.     muGetDefProtection(), <dos/dos.h>
  501.  
  502. multiuser.library/muSetProtection           multiuser.library/muSetProtection
  503.  
  504.   NAME  muSetProtection()  (V39)
  505.  
  506.     success = muSetProtection(name, mask);
  507.  
  508.     BOOL muSetProtection(STRPTR, LONG);
  509.     D0                   D1      D2
  510.  
  511.   DESCRIPTION
  512.     Set  the  protection  attributes on a file or directory.  See <dos/dos.h>
  513.     for a listing of protection bits and dos.library SetProtection() for more
  514.     information.
  515.     Using  this  function you can set the protection bits for GROUP and OTHER
  516.     too.
  517.  
  518.   INPUTS
  519.     name - pointer to a null-terminated string
  520.     mask - the protection mask required
  521.  
  522.   RESULT
  523.     success - success indicator.
  524.  
  525.   BUGS
  526.     none known
  527.  
  528.   SEE ALSO
  529.     muLimitDOSSetProtection(), dos.library/SetProtection(), <dos/dos.h>
  530.  
  531.