unix-compat-0.5.1: Portable POSIX-compatibility layer.

Safe HaskellSafe
LanguageHaskell98

System.PosixCompat.User

Contents

Description

This module makes the operations exported by System.Posix.User available on all platforms. On POSIX systems it re-exports operations from System.Posix.User. On other platforms it provides dummy implementations.

Synopsis

User environment

Querying the user environment

getRealUserID :: IO UserID #

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

getRealGroupID :: IO GroupID #

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

getEffectiveUserID :: IO UserID #

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

getEffectiveGroupID :: IO GroupID #

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

getGroups :: IO [GroupID] #

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

getLoginName :: IO String #

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

getEffectiveUserName :: IO String #

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

The group database

data GroupEntry #

Constructors

GroupEntry 

Fields

getGroupEntryForID :: GroupID -> IO GroupEntry #

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

getGroupEntryForName :: String -> IO GroupEntry #

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] #

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

The user database

data UserEntry #

Constructors

UserEntry 

Fields

Instances
Eq UserEntry 
Instance details

Defined in System.Posix.User

Read UserEntry 
Instance details

Defined in System.Posix.User

Show UserEntry 
Instance details

Defined in System.Posix.User

getUserEntryForID :: UserID -> IO UserEntry #

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

getUserEntryForName :: String -> IO UserEntry #

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] #

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

Modifying the user environment

setUserID :: UserID -> IO () #

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

setGroupID :: GroupID -> IO () #

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