| Portability | non-portable (requires POSIX) |
|---|---|
| Stability | provisional |
| Maintainer | libraries@haskell.org |
System.Posix.User
Contents
Description
POSIX user/group support
Synopsis
- 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 :: IO UserID Source
getRealUserID calls getuid to obtain the real UserID
associated with the current process.
getRealGroupID :: IO GroupID Source
getRealGroupID calls getgid to obtain the real GroupID
associated with the current process.
getEffectiveUserID :: IO UserID Source
getEffectiveUserID calls geteuid to obtain the effective
UserID associated with the current process.
getEffectiveGroupID :: IO GroupID Source
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 :: IO String Source
getLoginName calls getlogin to obtain the login name
associated with the current process.
getEffectiveUserName :: IO String Source
getEffectiveUserName gets the name
associated with the effective UserID of the process.
The group database
data GroupEntry Source
Constructors
Fields
- groupName :: String
The name of this group (gr_name)
- groupPassword :: String
The password for this group (gr_passwd)
- groupID :: GroupID
The unique numeric ID for this group (gr_gid)
- groupMembers :: [String]
A list of zero or more usernames that are members (gr_mem)
Instances
getGroupEntryForID :: GroupID -> IO GroupEntry Source
getGroupEntryForID gid calls getgrgid to obtain
the GroupEntry information associated with GroupID
gid.
getGroupEntryForName :: String -> IO GroupEntry Source
getGroupEntryForName name calls getgrnam to obtain
the GroupEntry information associated with the group called
name.
getAllGroupEntries :: IO [GroupEntry]Source
getAllGroupEntries returns all group entries on the system by
repeatedly calling getgrent
The user database
Constructors
Fields
- userName :: String
Textual name of this user (pw_name)
- userPassword :: String
Password -- may be empty or fake if shadow is in use (pw_passwd)
- userID :: UserID
Numeric ID for this user (pw_uid)
- userGroupID :: GroupID
Primary group ID (pw_gid)
- userGecos :: String
Usually the real name for the user (pw_gecos)
- homeDirectory :: String
Home directory (pw_dir)
- userShell :: String
Default shell (pw_shell)
getUserEntryForID :: UserID -> IO UserEntry Source
getUserEntryForID gid calls getpwuid to obtain
the UserEntry information associated with UserID
uid.
getUserEntryForName :: String -> IO UserEntry Source
getUserEntryForName name calls getpwnam to obtain
the UserEntry information associated with the user login
name.
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.