The last digit is replaced with x here. Assume it may be 0 or 1. If there is a continuing call, both the 0 and 1 terminated formats will be given as examples.
All returns of 9xxxx should be considered as a failure for the function.ID:1001x/2001x
NAME:GETIRFL_U
SEND:10010:<username>:
RETURN:20010:<IID>:<RCPID>:<FIRST NAME>:<LAST NAME>:
PURPOSE:get unique and descriptive info from a username
COMMENT:may return a 9xxxx error due to missing data in PDB or oracle problemsID:1002x/2002x
NAME:GETIR_FLSB
SEND:10020:<FIRST NAME>:<LAST NAME>:<SSN>:<BIRTH DATE>:
RETURN:20020:<IID>:<RCPID>:
PURPOSE:get rcpid and iid from "secret info"
COMMENT:used for authorizing may return a 9xxxx error due to PDB data.ID:1003x/2003x
NAME:GETRFL_I
SEND:10030:<IID>:
RETURN:20030:<RCPID>:<FIRST NAME>:<LAST NAME>:
PURPOSE:get rcpid first name and last name from iid
COMMENT:may return 9xxxx error due to PDB data.ID:1004x/2004x
NAME:GETIFL_R
SEND:10040:<RCPID>:
RETURN:20040:<IID>:<FIRST NAME>:<LAST NAME>:
PURPOSE:get iid, first and last from an rcpid
COMMENT:may return 9xxxx error due to pdb dataID:1005x/2005x
NAME:GETROLE
SEND:10050:<RCPID>:<ROLE>:
RETURN:20050:0 or 20050:1
PURPOSE:verify is role is associated with rcpid. 0 is no, 1 is yes.
COMMENT:may return a 9xxxx error on oracle error or PDB dataID:1006x/2006x
NAME:GETEMAIL
SEND:10060:<RCPID>:<ROLE>:
RETURN:20060:<EMAIL>:
PURPOSE:retrieve email address associated with rcpid role combo.
COMMENT:may return 9xxxx error on pdb data or oracle error.ID:1007x/2007x
NAME:GETROSTER
SEND:10070:<SSN>:<TERM>:<YEAR>:<REG_I>:
RETURN:20070:0: or 20070:1:
PURPOSE:verify if a ssn in a given course 0 = no 1= yes
COMMENT:may return 9xxxx error on pdb data or oracle error.
COMMENT: THIS CALL WAS SUPERCEDED BY ISINROSTERID:1008x/2008x
NAME:GETUSREX
SEND:10080:<USERNAME>:
RETURN:20080:1: or 20080:0:
PURPOSE:verify if a username exists in the pdb already 0 = no 1 = yes
COMMENT:may return 9xxxx on oracle error.ID:1009x/2009x
NAME:GETKERB
SEND:10090:<IID>:<REALM>:
RETURN:20090:0: or 20090:1:
PURPOSE:lets you know if an entry exists for a given principle in a given realm in kerberos. 0 = no, 1 = yes
COMMENT:may return a 9xxxx on fatal kerb problemsID:1010x/2010x
NAME:GETUSRINF
SEND:10100:<RCP_ID>:
RETURN:20100:<PRIMARY USERNAME>:
PURPOSE:lets you retrieve the primary username associated with an rcpid
COMMENT:returns a 9xxxx error on pdb data or oracle error.ID:1011x/2011x
NAME:GETIRFL_S
SEND:10110:<SSN>:
RETURN:20110:<RCPID>:<IID>:<FIRST NAME>:<LAST NAME>:
PURPOSE:retrieve identifying info from an ssn
COMMENT:returns 9xxxx code on pdb data or oracle error.ID:1012x/2012x
NAME:GETCAMPUS
SEND:10120:<RCPID>:<CAMPUS CODE>:
RETURN:20120:0: or 20120:1:
PURPOSE:tells you if a given campus is associated witha given IID 0 = no, 1 = yes
COMMENT:returns 9xxxx on oracle error.ID: 1013x/2013x
NAME: ISINCLASS/R_ISINCLASS
SEND: 10130:rcpid:term:year:unit:subject:course:
RETURN: 20130:0: or 20130:1:
PURPOSE: check if user is in a certain classID: 1014x/2014x
NAME:GETMAJOR
SEND:10140:<RCPID>:<MAJOR CODE>:
RETURN:20140:1: or 20140:0:
PURPOSE:tells you if a given rcpid is in a given major.
COMMENT:returns 9xxxx on oracle errorID: 1015x/2015x
NAME: ISINROSTER/R_ISINROSTER
SEND: 10150:rcpid:term:year:reg_i:
RETURN: 20150:0: or 20150:1:
PURPOSE: check if user is in a certain section
COMMENT: this is the new version of GETROSTERID:1016x/2016x
NAME:GETALLR
SEND:10160:<RCPID>::
RETURN:20150:<role>: or 20151:<role>:
PURPOSE:gives you all the roles associated with an rcpid.
COMMENT:returns 9xxxx on oracle errorID:1500x/2500x
NAME:SETKERB
SEND:15000:<PRINCIPLE>:<REALM>:<PASSWORD>
RETURN:25000:0: 25000:1:
PURPOSE:set the kerberos prinicple 1= success 0 = failure
COMMENT:returns 9xxxx on fatal kerb errorID:1501x/2501x
NAME:SETEMAIL
SEND:15010:<RCPID>:<EMAIL ADDRESS>:<ROLE>:
RETURN:25010:0: or 25010:1:
PURPOSE:set the email field for a specific rcpid role pair.
COMMENT:may return 9xxxx on oracle error.ID:1502x/2502x
NAME:SETACCINF
SEND:15020:<RCPID>:<USERNAME>:
RETURN:25020:1: or 9xxxx failure
PURPOSE:set a primary username for a given rcpid.
COMMENT:either works or causes an oracle error.ID:1503x/2503x
NAME:REMEMAIL
SEND:15030:<USERNAME>:<EMAIL>:
RETURN:25030:1: oe 9xxxx error
PURPOSE:delete email addresss
COMMENT:this deletes all email addresses where username and email are associated to the same rcpid, and the email address matches email in either all uppercase or all lowercase.ID:1504x/2504x
NAME:obsoleted and moved for security
SEND:
RETURN:
PURPOSE:
COMMENT:may be reused at a later dateID:1505x/2505x
NAME:obsoleted and moved for security
SEND:
RETURN:
PURPOSE:
COMMENT:may be reused at a later dateID:1506x/2506x
NAME:SETNPUSER
SEND:15060:<RCPID>:<NON PRIMARY USERNAME>
RETURN:25060:1: or 9xxxx error
PURPOSE:set a non-primary username for given rcpid
COMMENT:you can multiple non-primary usernames, but only one primary. All usernames are unique within the same space though.ID:1507x/2507x
NAME:CHNGPWD
SEND:15070:<FIRST NAME>:<LAST NAME>:<SSN>:<BIRTH DATE>:<PRINCIPLE>:<REALM>:<PASSWORD>:
RETURN:25070:0: 25070:1:
PURPOSE:authenticate and change password for authenticated individual.
COMMENT:may also return 9xxxx on kerb fatal. 0 = failure 1 = success.ID:19998/29998
NAME:QUIT
SEND:19998:
RETURN:none
PURPOSE:terminate conversation
COMMENT:supported but not neededID:5001x/6001x
NAME:GETPHERDS
SEND:50010:<RCPID>:
RETURN:60010:<HERD NAME>: or 60011:<HERD NAME>:
PURPOSE:give rcpid get the herds they belong to.
COMMENT:repeating return call. gives 9xxxx on error with pdb or oracleID:5002x/6002x
NAME:GETHERDACL
SEND:50020:<RCPID>:<HERD NAME>:
RETURN:60020:0: 60020:1:
PURPOSE:see if rcpid is in the scl for a given herd
COMMENT:9xxxx ...ID:5003x/6003x
NAME:GETHERDUSR
SEND:50030:<HERDNAME>:
RETURN:60030:<RCPID>: or 60031:<RCPID>: or 60030:: if none found
PURPOSE:get rcpids associated with a herd
COMMENT:continuing call so not found behaves differently
ID: 5004x/6004x
NAME: GETHUINFO/R_GETHUINFO
SEND: 50040:rcpid:herd:
RETURN: 60040:create_date:expire_data:spon_rcpid:creat_rcpid:
PURPOSE: describes herd properties for a herd member
ID:5501x/6501x
NAME:SETHERD
SEND:55010:<USER RCPID>:<CREATOR RCPID>:<SPONSOR RCPID>:<HERD NAME>:<EXPIRATION DATE>:
RETURN:65010:1: or 9xxxx error
PURPOSE:to set a herd for a givem user
COMMENT:Pass date as the string "NULL" without quotes to have no expiration date.ID:5502x/6502x
NAME:EXPHERD
SEND:55020:<RCPID>:<HERD NAME>:
RETURN:65020:0: or 65020:1:
PURPOSE:expire herd for given rcpid herd always set ot expire at sysdate as seen by the PDB
COMMENT:as always 1 = success/yes 0 =fail/no, 9xxxx may return for error.ID:5503x/6503x
NAME:EXPUSR
SEND:55030:<RCPID>:<USERNAME>:<EXP_DATE>:<BECOME INACTIVE DATE>:
RETURN:65030:0: or 65030:1:
PURPOSE:expire a users username
COMMENT:works for secondaries too. become inactive date is date actually removed, expiration date is sysdate as seen by PDB.ID:5504x/6504x
NAME:SETHERDACL
SEND:55040:<RCPID>:<HERD NAME>:
RETURN:65040:0: or 65040:1:
PURPOSE:add rcpid given to acl for herd name given.
COMMENT:as always 9xxxx on failure is possible. 0=fail 1=succID:5505x/6505x
NAME:SETHERDNAME
SEND:55050:<HERDNAME>:
RETURN:65050:0: or 65050:1:
PURPOSE:add herd name to ACL
COMMENT:as always 9xxxx on fail 0 = fail 1 = succID:5506x/6506x
NAME:REMHERDACL
SEND:55060:<RCPID>:<HERD NAME>:
RETURN:65060:1: or 9xxxx failure
PURPOSE:delete a herd name from the ACL
COMMENT:1 = success.ID: 3001x/4001x
NAME: QSET/R_QSET
SEND: 30010:uid:soft:hard:fs:
RETURN: 40010:1:
PURPOSE:setting quotas for a user on a file system
COMMENT:"fs" is a path.ID: 3002x/4002x
NAME: MKDIR/R_MKDIR
SEND: 30020:uid:gid:path:perm:
RETURN: 40020:1:
PURPOSE:create a directory with permissions and ownership
COMMENT:ID: 3003x/4003x
NAME: RMDIR/R_RMDIR
SEND: 30030:path:
RETURN: 40030:1:
PURPOSE:remove a directory
COMMENT:ID: 3004x/4004x
NAME: ADDPWEN/R_ADDPWEN
SEND: 30040:usr:pas:uid:gid:gcos:home:sh:lastchg:minday:maxday:warn:inactive:expire:flag:
RETURN: 40040:uid:
PURPOSE:create a new pass/shadow entry
COMMENT:Args match fields in both passwd and shadow.
COMMENT:If uid == $CONFIG::BOGUS_UID then a new uid will be generated.ID: 3005x/4005x
NAME: REMPWEN/R_REMPWEN
SEND: 30050:user:
RETURN: 40050:1:
PURPOSE:remove a pass/shadow entry
COMMENT:ID: 3006x/4006x
NAME: ADDTOGRP/R_ADDTOGRP
SEND: 30060:user:group:
RETURN: 40060:1:
PURPOSE:add user to a group
COMMENT:Group manipulation may create group size re-ordering.ID: 3007x/4007x
NAME: REMFRGRP/R_REMFRGRP
SEND: 30070:user:group:
RETURN: 40070:1:
PURPOSE:remove a user from group
COMMENT:Group manipulation may create group size re-ordering.ID: 3008x/4008x
NAME: LOG/R_LOG
SEND: 30080:message:
RETURN: 40080:1:
PURPOSE:log a message
COMMENT:Log messages should generaly contain the function name
COMMENT:the proccess name,id, and time will be prepanded.ID: 3009x/4009x
NAME: DEBUG/R_DEBUG
SEND: 30090:message:
RETURN: 40090:1:
PURPOSE:log a debug message
COMMENT:Log messages should generaly contain the function name
COMMENT:the proccess name,id, and time will be prepanded.ID: 3010x/4010x
NAME: LINK/R_LINK
SEND: 30100:source:target:uid:gid:
RETURN: 40100:1:
PURPOSE:link a source file to target file
COMMENT:If both source and target already exists it return 1 even if they
COMMENT:don't point at each other.
COMMENT:Ownership will be set with lchown if OS support it.ID: 3011x/4011x
NAME: COPY/R_COPY
SEND: 30110:source:target:uid:gid:
RETURN: 40110:1:
PURPOSE:copy a source file to a target file
COMMENT:The permission of the target are inherited from the sourceID: 3012x/4012x
NAME: RUN/R_RUN
SEND: 30120:script:username:
RETURN: 40120:1:
PURPOSE:run a script on a host
COMMENT:The path of the script will be appended to $CONFIG::SCRIPT_DIR.
COMMENT:username is passed as arg to the script at run time.ID: 3013x/4013x
NAME: ARCHIVE/R_ARCHIVE
SEND: 30130:path:
RETURN: 40130:1:
PURPOSE:Archive a user home directory or any other path
COMMENT:Archiving is controled by various vars in CONFIG. read rats.conf docsID: 3014x/4014x
NAME: RESERVE/R_RESERVE
SEND: 30140:username:
RETURN: 40140:uid:
PURPOSE:reserve an uid for a user
COMMENT:Reservation control and uid allocation are controled in rats.confID: 3015x/4015x
NAME: CHGSHELL/R_CHGSHELL
SEND: 30150:username:path:timestamp
RETURN: 40150:timestamp:
PURPOSE:change a user's shell
COMMENT:Path is used as the new shell for usernameID: 3016x/4016x
NAME: ADDGRPENT/R_ADDGRPENT
SEND: 30160:group:pass:gid:
RETURN: 40160:gid:
PURPOSE: create a new group entry
COMMENT:If gid == $CONFIG::BOGUS_UID then a new gid will be generated.ID: 3017x/4017x
NAME: REMGRPENT/R_REMGRPENT
SEND: 30170:group:
RETURN: 40170:1:
PURPOSE: remove a group entry
COMMENT: In database mode this only removes the group but not the the
COMMENT: group members for that group. The members should be cleaned
COMMENT: first.ID: 3018x/4018x
NAME: RESERVEG/R_RESERVEG
SEND: 30180:group:
RETURN: 40180:gid:
PURPOSE: reserve a gid for the given groupID: 3019x/4019x
NAME: ADDACCT/R_ADDACCT
SEND: 30190:username:account:
RETURN: 40190:1:
PURPOSE: add account type to a user.
COMMENT: This just updates a table/file to keep track of the accounts
COMMENT: given to a user. It does not create the account itselfID: 3020x/4020x
NAME: REMACCT/R_REMACCT
SEND: 30200:username:account:
RETURN: 40200:1:
PURPOSE: remove account type from user
COMMENT: This just updates a table/file to keep track of the accounts
COMMENT: give to a user. It does not remove the account itselfID: 3021x/4021x
NAME: CHGGCOS/R_CHGGCOS
SEND: 30210:username:gcos:timestamp:
RETURN: 40210:timestamp:
PURPOSE: change gcos field in passwordID: 3022x/4022x
NAME: CHGHOME/R_CHGHOME
SEND: 30220:username:home:timestamp:
RETURN: 40220:timestamp:
PURPOSE: change homedir field in passwordID: 3023x/4023x
NAME: CHGPASSPW/R_CHGPASSPW
SEND: 30230:username:pass:timestamp:
RETURN: 40230:timestamp:
PURPOSE: change password field in passwordID: 3024x/4024x
NAME: CHGUNAME/R_CHGUNAME
SEND: 30250:username:newuserame:timestamp:
RETURN: 40250:timestamp:
PURPOSE: change username field in passwordID: 3025x/4025x
NAME: CHGUID/R_CHGUID
SEND: 30270:username:uid:timestamp:
RETURN: 40270:timestamp:
PURPOSE: change uid field in passwordID: 3026x/4026x
NAME: CHGGIDPW/R_CHGGIDPW
SEND: 30280:username:gid:timestamp:
RETURN: 40280:timestamp:
PURPOSE: change gid field in passwordID: 3027x/4027x
NAME: CHGGIDGR/R_CHGGIDGR
SEND: 30290:group:gid:timestamp:
RETURN: 40290:timestamp:
PURPOSE: change group gid field in groupID: 3028x/4028x
NAME: CHGGNAME/R_CHGGNAME
SEND: 30300:group:newgroup:timestamp:
RETURN: 40300:timestamp:
PURPOSE: change group name field in groupID: 3029x/4029x
NAME: CHGPASSGR/R_CHGPASSGR
SEND: 30310:group:pass:timestamp:
RETURN: 40310:timestamp:
PURPOSE: change password field in shadowID: 3030x/4030x
NAME: CHGSLAST/R_CHGSLAST
SEND: 30320:username:lastchg:timestamp:
RETURN: 40320:tiemstamp:
PURPOSE: change password last changed field in shadowID: 3031x/4031x
NAME: CHGSMIN/R_CHGSMIN
SEND: 30330:username:minpwchg:timestamp:
RETURN: 40330:timestamp:
PURPOSE: change password change min time field in shadowID: 3032x/4032x
NAME: CHGSMAX/R_CHGSMAX
SEND: 30340:username:maxpwchg:timestamp:
RETURN: 40340:timestamp:
PURPOSE: change password change warn time field in shadowID: 3033x/4033x
NAME: CHGSWARN/R_CHGSWARN
SEND: 30350:username:warnchgpw:timestamp:
RETURN: 40350:timestamp:
PURPOSE: change warn time field in shadowID: 3034x/4034x
NAME: CHGSINAC/R_CHGSINAC
SEND: 30360:username:inactiveflag:timestamp:
RETURN: 40360:timestamp:
PURPOSE: change inactive flag field in shadowID: 3035x/4035x
NAME: CHGSEXP/R_CHGSEXP
SEND: 30370:username:expiredflag:timestamp:
RETURN: 40370:timestamp:
PURPOSE: change expire flag field in shadowID: 3036x/4036x
NAME: CHGSFLAG/R_CHGSFLAG
SEND: 30380:username:genericflag:timestamp:
RETURN: 40380:timestamp:
PURPOSE: change generic flag field in shadowID: 3037x/4037x
NAME: CHGSPW/R_CHGSPW
SEND: 30240:username:pass:timestamp:
RETURN: 40240:timestamp:
PURPOSE: change password field in shadowID: 3038x/4038x
NAME: CHGSUNAME/R_CHGSUNAME
SEND: 30260:username:newuserame:timestamp:
RETURN: 40260:timestamp:
PURPOSE: change username field in shadowID: 3501x/4501x
NAME: GETUID/R_GETUID
SEND: 35010:username:
RETURN: 45010:uid:timestamp:
PURPOSE:retrive an uid for a user, and last changed for the passwd entry
COMMENT:Both password and reserve files are checked.ID: 3502x/4502x
NAME: GETPWENT/R_GETPWENT
SEND: 35020:username:
RETURN: 45020:username:pass:uid:gid:gcos:home:shell:timestamp
PURPOSE:get password entry for a user, and last changed for the passwd entry
COMMENT:Note that this does not return shadow infoID: 3503x/4503x
NAME: QGET/R_QGET
SEND: 35030:uid:fs:
RETURN: 45030:soft:hard:
PURPOSE:get quota for a user on a file system
COMMENT:This call may be expanded to support other quota infoID: 3504x/4504x
NAME: GETGID/R_GETGID
SEND: 35040:groupname:
RETURN: 45040:gid:timestamp:
PURPOSE:get gid for a group, and last changed for the group entry
COMMENT:ID: 3505x/4505x
NAME: GETGROUP/R_GETGROUP
SEND: 35050:username:
RETURN: 45050:groupname:groupname:...:
PURPOSE:get list of group names for a user
COMMENT:It returns groups from group file and that represent by primary gidID: 3506x/4506x
NAME: GETUSERS/R_GETUSERS
SEND: 35060:
RETURN: 45060:user:user:user:...:
PURPOSE:get list of usernames on host
COMMENT:List of usernames includes both password and reserve infoID: 3507x/4507x
NAME: GETGRNAM/R_GETGRNAM
SEND: 35070:groupname:
RETURN: 45070:groupname:pass:gid:users:timestamp
PURPOSE:return group entry, and last changed for the group entry
COMMENT:Users is a string of space separated usernames
COMMENT:The entry is compiled from all group following the -ext conventionID: 3508x/4508x
NAME: GETSHENT/R_GETSHENT
SEND: 35080:username:
RETURN: 45080:user:pass:lastchg:mindays:maxdays:warn:inactive:expire:flag:timestamp:
PURPOSE:get shadow file entry for user, and last changed for the passwd entry
COMMENT:ID: 3509x/4509x
NAME: EXUSER/R_EXUSER
SEND: 35090:username
RETURN: 45090:1
PURPOSE:check if a user exists on system
COMMENT:This checks both password and reserve files
COMMENT:Returns error if user not foundID: 3510x/4510x
NAME: GETACCT/R_GETACCT
SEND: 35100:username:
RETURN: 45100:acct:acct:...:
PURPOSE: return all account types associated with usernameID:3511x/4511x
ID:35120x/45120x
NAME:CHKDBLOCK/R_CHKDBLOCK
SEND:35120:
RETURN:45120:0: if no lock 45120:1: if there is
PURPOSE:check status of global advisory lock