APIs to obtain current user id and group id, and/or obtain more information from the given user id and group id.

  • Interface to get current [effective] uid/gid, and/or login name.
  • Interface to access user/group database.
    • Directly obtain information from user/group id/name.
    • Obtain information via user/group structure, as in Unix.
  • Ability to change uid/gid.



getuid etc.

current-user-id, current-effective-user-id, current-group-id, current-effective-group-id, set-user-id!.

user/group db


getuid etc.

sys-getuid, sys-geteuid, sys-getgid, sys-getegid, sys-setuid?, sys-setgid?

user/group db

sys-getpwnam?, sys-getpwuid?, sys-getgrnam?, sys-getgrid?


getuid etc.

get-user-id, get-effective-user-id, get-group-id, get-effective-group-id, set-user-id!, set-group-id!

user/group db lookup

user-id->user-info, name->user-info, group-id->group-info, name->group-info

user/group db entry

user-info?, user-info-name, user-info-id, user-info-group, user-info-home-directory, user-info-shell, group-info?, group-info-name, group-info-id, group-info-members

User-ids and group-ids are "boxed" in Scheme48. See user-id->integer, integer->user-id, group-id->integer, integer->group-id.