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 |
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 ()
- 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
GroupID
s 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 #
GroupEntry | |
|
Instances
Eq GroupEntry Source # | |
Defined in System.Posix.User (==) :: GroupEntry -> GroupEntry -> Bool Source # (/=) :: GroupEntry -> GroupEntry -> Bool Source # |
|
Read GroupEntry Source # | |
Defined in System.Posix.User readsPrec :: Int -> ReadS GroupEntry Source # readList :: ReadS [ GroupEntry ] Source # readPrec :: ReadPrec GroupEntry Source # readListPrec :: ReadPrec [ GroupEntry ] Source # |
|
Show GroupEntry Source # | |
Defined in System.Posix.User |
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 :: String -> 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
UserEntry | |
|
getUserEntryForID :: UserID -> IO UserEntry Source #
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 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.