| Copyright | (c) The University of Glasgow 2002 |
|---|---|
| License | BSD-style (see the file libraries/base/LICENSE) |
| Maintainer | libraries@haskell.org |
| Stability | provisional |
| Portability | non-portable (requires POSIX) |
| Safe Haskell | Trustworthy |
| Language | Haskell2010 |
System.Posix.User.ByteString
Description
POSIX user/group support
Synopsis
- getRealUserID :: IO UserID
- getRealGroupID :: IO GroupID
- getEffectiveUserID :: IO UserID
- getEffectiveGroupID :: IO GroupID
- getGroups :: IO [GroupID]
- getLoginName :: IO ByteString
- getEffectiveUserName :: IO ByteString
- data GroupEntry = GroupEntry {}
- getGroupEntryForID :: GroupID -> IO GroupEntry
- getGroupEntryForName :: ByteString -> IO GroupEntry
- getAllGroupEntries :: IO [GroupEntry]
- data UserEntry = UserEntry {}
- getUserEntryForID :: UserID -> IO UserEntry
- getUserEntryForName :: ByteString -> IO UserEntry
- getAllUserEntries :: IO [UserEntry]
- setUserID :: UserID -> IO ()
- setGroupID :: GroupID -> IO ()
- setEffectiveUserID :: UserID -> IO ()
- setEffectiveGroupID :: GroupID -> IO ()
- setGroups :: [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 ByteString Source #
getLoginName calls getlogin to obtain the login name
associated with the current process.
getEffectiveUserName :: IO ByteString Source #
getEffectiveUserName gets the name
associated with the effective UserID of the process.
The group database
data GroupEntry Source #
Constructors
| GroupEntry | |
Fields
| |
Instances
| Read GroupEntry Source # | |
Defined in System.Posix.User.Common Methods readsPrec :: Int -> ReadS GroupEntry # readList :: ReadS [GroupEntry] # readPrec :: ReadPrec GroupEntry # readListPrec :: ReadPrec [GroupEntry] # | |
| Show GroupEntry Source # | |
Defined in System.Posix.User.Common Methods showsPrec :: Int -> GroupEntry -> ShowS # show :: GroupEntry -> String # showList :: [GroupEntry] -> ShowS # | |
| Eq GroupEntry Source # | |
Defined in System.Posix.User.Common | |
getGroupEntryForID :: GroupID -> IO GroupEntry Source #
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 :: ByteString -> IO GroupEntry Source #
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
Constructors
| UserEntry | |
Fields
| |
getUserEntryForID :: UserID -> IO UserEntry Source #
getUserEntryForID uid calls getpwuid_r to obtain
the UserEntry information associated with UserID
uid. This operation may fail with isDoesNotExistError
if no such user exists.
getUserEntryForName :: ByteString -> IO UserEntry Source #
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.