W3cubDocs

/Haskell 9

System.Posix.User

Copyright (c) The University of Glasgow 2002
License BSD-style (see the file libraries/base/LICENSE)
Maintainer [email protected]
Stability provisional
Portability non-portable (requires POSIX)
Safe Haskell Trustworthy
Language Haskell2010

Description

POSIX user/group support

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

groupName :: GroupEntry -> String Source

groupPassword :: GroupEntry -> String Source

groupID :: GroupEntry -> GroupID Source

groupMembers :: GroupEntry -> [String] Source

pattern GroupEntry Source

Arguments

:: String

The name of this group (gr_name)

-> String

The password for this group (gr_passwd)

-> GroupID

The unique numeric ID for this group (gr_gid)

-> [String]

A list of zero or more usernames that are members (gr_mem)

-> GroupEntry

Manually constructing GroupEntry in String modules is discouraged. It will truncate Chars to 8bit. Use ByteString instead.

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

userName :: UserEntry -> String Source

userPassword :: UserEntry -> String Source

userID :: UserEntry -> UserID Source

userGroupID :: UserEntry -> GroupID Source

userGecos :: UserEntry -> String Source

homeDirectory :: UserEntry -> String Source

userShell :: UserEntry -> String Source

pattern UserEntry Source

Arguments

:: String

Textual name of this user (pw_name)

-> String

Password -- may be empty or fake if shadow is in use (pw_passwd)

-> UserID

Numeric ID for this user (pw_uid)

-> GroupID

Primary group ID (pw_gid)

-> String

Usually the real name for the user (pw_gecos)

-> String

Home directory (pw_dir)

-> String

Default shell (pw_shell)

-> UserEntry

Manually constructing UserEntry in String modules is discouraged. It will truncate Chars to 8bit. Use ByteString instead.

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 :: 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.

setGroups :: [GroupID] -> IO () Source

setGroups calls setgroups to set the list of supplementary GroupIDs associated with the current process.

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/9.12.1/docs/libraries/unix-2.8.6.0-e212/System-Posix-User.html