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 GroupID
s 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
.