unix-2.8.6.0: POSIX functionality
Copyright(c) The University of Glasgow 2002
LicenseBSD-style (see the file libraries/base/LICENSE)
Maintainerlibraries@haskell.org
Stabilityprovisional
Portabilitynon-portable (requires POSIX)
Safe HaskellTrustworthy
LanguageHaskell2010

System.Posix.User.ByteString

Description

POSIX user/group support

Synopsis

User environment

Querying the user environment

getRealUserID :: IOUserIDSource#

getRealUserID calls getuid to obtain the real UserID associated with the current process.

getRealGroupID :: IOGroupIDSource#

getRealGroupID calls getgid to obtain the real GroupID associated with the current process.

getEffectiveUserID :: IOUserIDSource#

getEffectiveUserID calls geteuid to obtain the effective UserID associated with the current process.

getEffectiveGroupID :: IOGroupIDSource#

getEffectiveGroupID calls getegid to obtain the effective GroupID associated with the current process.

getGroups :: IO [GroupID] Source#

getGroups calls getgroups to obtain the list of supplementary GroupIDs associated with the current process.

getLoginName :: IOByteStringSource#

getLoginName calls getlogin to obtain the login name associated with the current process.

getEffectiveUserName :: IOByteStringSource#

getEffectiveUserName gets the name associated with the effective UserID of the process.

The group database

dataGroupEntrySource#

Constructors

GroupEntry 

Fields

getGroupEntryForID :: GroupID -> IOGroupEntrySource#

getGroupEntryForID gid calls getgrgid_r to obtain the GroupEntry information associated with GroupIDgid. This operation may fail with isDoesNotExistError if no such group exists.

getGroupEntryForName :: ByteString -> IOGroupEntrySource#

getGroupEntryForName name calls getgrnam_r to obtain the GroupEntry information associated with the group called name. This operation may fail with isDoesNotExistError if no such group exists.

getAllGroupEntries :: IO [GroupEntry] Source#

getAllGroupEntries returns all group entries on the system by repeatedly calling getgrent

The user database

dataUserEntrySource#

Constructors

UserEntry 

Fields

getUserEntryForID :: UserID -> IOUserEntrySource#

getUserEntryForID uid calls getpwuid_r to obtain the UserEntry information associated with UserIDuid. This operation may fail with isDoesNotExistError if no such user exists.

getUserEntryForName :: ByteString -> IOUserEntrySource#

getUserEntryForName name calls getpwnam_r to obtain the UserEntry information associated with the user login name. This operation may fail with isDoesNotExistError if no such user exists.

getAllUserEntries :: IO [UserEntry] Source#

getAllUserEntries returns all user entries on the system by repeatedly calling getpwent

Modifying the user environment

setUserID :: UserID -> IO () Source#

setUserID uid calls setuid to set the real, effective, and saved set-user-id associated with the current process to uid.

setGroupID :: GroupID -> IO () Source#

setGroupID gid calls setgid to set the real, effective, and saved set-group-id associated with the current process to gid.

setEffectiveUserID :: UserID -> IO () Source#

setEffectiveUserID uid calls seteuid to set the effective user-id associated with the current process to uid. This does not update the real user-id or set-user-id.

setEffectiveGroupID :: GroupID -> IO () Source#

setEffectiveGroupID uid calls setegid to set the effective group-id associated with the current process to gid. This does not update the real group-id or set-group-id.

setGroups :: [GroupID] -> IO () Source#

setGroups calls setgroups to set the list of supplementary GroupIDs associated with the current process.

close