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.
- getRealUserID :: IO UserID
- getRealGroupID :: IO GroupID
- getEffectiveUserID :: IO UserID
- getEffectiveGroupID :: IO GroupID
- getGroups :: IO [GroupID]
- getLoginName :: IO String
- getEffectiveUserName :: IO String
- data GroupEntry = GroupEntry {
- groupName :: String
- groupPassword :: String
- groupID :: GroupID
- groupMembers :: [String]
- getGroupEntryForID :: GroupID -> IO GroupEntry
- getGroupEntryForName :: String -> IO GroupEntry
- getAllGroupEntries :: IO [GroupEntry]
- data UserEntry = UserEntry {
- userName :: String
- userPassword :: String
- userID :: UserID
- userGroupID :: GroupID
- userGecos :: String
- homeDirectory :: String
- userShell :: String
- getUserEntryForID :: UserID -> IO UserEntry
- getUserEntryForName :: String -> IO UserEntry
- getAllUserEntries :: IO [UserEntry]
- setUserID :: UserID -> IO ()
- setGroupID :: GroupID -> IO ()
User environment
Querying the user environment
getRealUserID calls getuid to obtain the real UserID
associated with the current process.
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 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
| |
Instances
getGroupEntryForID :: GroupID -> IO GroupEntry
getGroupEntryForID gid calls getgrgid to obtain
the GroupEntry information associated with GroupID
gid.
getGroupEntryForName :: String -> IO GroupEntry
getGroupEntryForName name calls getgrnam to obtain
the GroupEntry information associated with the group called
name.
getAllGroupEntries :: IO [GroupEntry]
getAllGroupEntries returns all group entries on the system by
repeatedly calling getgrent
The user database
data UserEntry
Constructors
| UserEntry | |
Fields
| |
getUserEntryForID :: UserID -> IO UserEntry
getUserEntryForID gid calls getpwuid to obtain
the UserEntry information associated with UserID
uid.
getUserEntryForName :: String -> IO UserEntry
getUserEntryForName name calls getpwnam to obtain
the UserEntry information associated with the user login
name.
getAllUserEntries :: IO [UserEntry]
getAllUserEntries returns all user entries on the system by
repeatedly calling getpwent
Modifying the user environment
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.