Synopsis
lu_context_t* lu_start (const char *authname,
lu_entity_type_t auth_type,
const char *modules,
const char *create_modules,
lu_prompt_fn *prompter,
gpointer callback_data,
lu_error_t **error);
void lu_end (lu_context_t *context);
void lu_set_prompter (lu_context_t *context,
lu_prompt_fn *prompter,
gpointer callback_data);
void lu_get_prompter (lu_context_t *context,
lu_prompt_fn **prompter,
gpointer *callback_data);
gboolean lu_set_modules (lu_context_t *context,
const char *list,
lu_error_t **error);
const char* lu_get_modules (lu_context_t *context);
gboolean lu_uses_elevated_privileges (lu_context_t *context);
gboolean lu_user_lookup_name (lu_context_t *context,
const char *name,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_lookup_id (lu_context_t *context,
uid_t uid,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_default (lu_context_t *ctx,
const char *name,
gboolean system_account,
struct lu_ent *ent);
gboolean lu_user_add (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_modify (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_delete (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_setpass (lu_context_t *context,
struct lu_ent *ent,
const char *newpass,
gboolean crypted,
lu_error_t **error);
gboolean lu_user_removepass (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_lock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_unlock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_unlock_nonempty (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_user_islocked (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
GValueArray* lu_users_enumerate (lu_context_t *context,
const char *pattern,
lu_error_t **error);
GValueArray* lu_users_enumerate_by_group (lu_context_t *context,
const char *group,
lu_error_t **error);
GPtrArray* lu_users_enumerate_full (lu_context_t *context,
const char *pattern,
lu_error_t **error);
gboolean lu_group_lookup_name (lu_context_t *context,
const char *name,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_lookup_id (lu_context_t *context,
gid_t gid,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_default (lu_context_t *ctx,
const char *name,
gboolean system_account,
struct lu_ent *ent);
gboolean lu_group_add (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_modify (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_delete (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_setpass (lu_context_t *context,
struct lu_ent *ent,
const char *newpass,
gboolean crypted,
lu_error_t **error);
gboolean lu_group_removepass (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_lock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_unlock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_unlock_nonempty (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
gboolean lu_group_islocked (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
GValueArray* lu_groups_enumerate (lu_context_t *context,
const char *pattern,
lu_error_t **error);
GValueArray* lu_groups_enumerate_by_user (lu_context_t *context,
const char *user,
lu_error_t **error);
GPtrArray* lu_groups_enumerate_full (lu_context_t *context,
const char *pattern,
lu_error_t **error);
Details
lu_start ()
lu_context_t* lu_start (const char *authname,
lu_entity_type_t auth_type,
const char *modules,
const char *create_modules,
lu_prompt_fn *prompter,
gpointer callback_data,
lu_error_t **error);
Initializes the libuser library.
authname : | suggested client name to use when connecting to servers, or NULL
|
auth_type : | whether auth_name is a user or a group
|
modules : | a list of modules to use for queries (separated by whitespace or
commas), or NULL to use modules specified in the config file
|
create_modules : | a list of modules to use for entity creation (separated by
whitespace or commas), or NULL to use modules specified in the config file
|
prompter : | a function to use for getting information from the user
|
callback_data : | data for prompter
|
error : | filled with a lu_error if an error occurs
|
Returns : | a context which should be freed by lu_end() on success, NULL on
failure
|
lu_end ()
void lu_end (lu_context_t *context);
Destroys a libuser library context
lu_set_prompter ()
void lu_set_prompter (lu_context_t *context,
lu_prompt_fn *prompter,
gpointer callback_data);
Changes the prompter function in a context
context : | a context
|
prompter : | a new function to user for getting information from the user
|
callback_data : | data for prompter
|
lu_get_prompter ()
void lu_get_prompter (lu_context_t *context,
lu_prompt_fn **prompter,
gpointer *callback_data);
Gets current prompter function from a context
context : | a context
|
prompter : | if not NULL , points to a place where the current prompter function
will be stored
|
callback_data : | if not NULL , points to a place where the current prompter
function data will be stored
|
lu_set_modules ()
gboolean lu_set_modules (lu_context_t *context,
const char *list,
lu_error_t **error);
Replaces the current set of modules for queries in context
to list
.
context : | a context
|
list : | a list of modules (separated by whitespace or commas)
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success, FALSE on failure
|
lu_get_modules ()
const char* lu_get_modules (lu_context_t *context);
Returns a list of modules for queries in context
.
context : | a context
|
Returns : | a list of modules separated by spaces, or NULL if the list of
modules is empty. The list should not be freed by the caller.
|
lu_uses_elevated_privileges ()
gboolean lu_uses_elevated_privileges (lu_context_t *context);
Checks if any module uses elevated privileges (e.g. modifies files that
normal users can't modify).
context : | a context
|
Returns : | TRUE if at least one module uses elevated privileges
|
lu_user_lookup_name ()
gboolean lu_user_lookup_name (lu_context_t *context,
const char *name,
struct lu_ent *ent,
lu_error_t **error);
Looks up an user by name.
context : | a context
|
name : | user name
|
ent : | an entity filled with received information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_lookup_id ()
gboolean lu_user_lookup_id (lu_context_t *context,
uid_t uid,
struct lu_ent *ent,
lu_error_t **error);
Looks up an user by UID.
context : | a context
|
uid : | user ID
|
ent : | an entity filled with received information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_default ()
gboolean lu_user_default (lu_context_t *ctx,
const char *name,
gboolean system_account,
struct lu_ent *ent);
Fills out an user entity as specified by the config file and modules
to prepare for creation of the user.
ctx : | a context
|
name : | new user name
|
system_account : | non-zero if the user is a system user
|
ent : | an entity
|
Returns : | TRUE on success
|
lu_user_add ()
gboolean lu_user_add (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Creates an user in all modules specified for entity creation.
context : | a context
|
ent : | an entity describing the user, on success updated with resulting account
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_modify ()
gboolean lu_user_modify (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Modifies an user entity.
context : | a context
|
ent : | an entity with pending modifications, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_delete ()
gboolean lu_user_delete (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Deletes an user.
context : | a context
|
ent : | an entity describing the user
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_setpass ()
gboolean lu_user_setpass (lu_context_t *context,
struct lu_ent *ent,
const char *newpass,
gboolean crypted,
lu_error_t **error);
Changes an user's password.
context : | a context
|
ent : | an entity describing the user, on success updated with current
information and LU_SHADOWLASTCHANGE
|
newpass : | new password
|
crypted : | non-zero if newpass is already encrypted
|
error : | filled with an lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_removepass ()
gboolean lu_user_removepass (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Changes an user's password to an empty string.
context : | a context
|
ent : | an entity describing the user, on success updated with current
information and LU_SHADOWLASTCHANGE
|
error : | filled with an lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_lock ()
gboolean lu_user_lock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Locks an user account.
context : | a context
|
ent : | an entity describing the user, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_unlock ()
gboolean lu_user_unlock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Unlocks an user account.
context : | a context
|
ent : | an entity describing the user, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_unlock_nonempty ()
gboolean lu_user_unlock_nonempty (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Unlocks an user account. If unlocking the account would result in an empty
password field, it fails with lu_error_unlock_empty
. Note that the
password can still be empty.
context : | a context
|
ent : | an entity describing the user, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_user_islocked ()
gboolean lu_user_islocked (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Checks if an user account is locked.
context : | a context
|
ent : | an entity describing the user
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE if the account is locked in at least one module
|
lu_users_enumerate ()
GValueArray* lu_users_enumerate (lu_context_t *context,
const char *pattern,
lu_error_t **error);
Returns a list of all users matching a pattern.
context : | a context
|
pattern : | a glob-like pattern for user name
|
error : | filled with a lu_error if an error occurs
|
Returns : | an array of strings, each representing one user name. The array
should be freed by the caller.
|
lu_users_enumerate_by_group ()
GValueArray* lu_users_enumerate_by_group (lu_context_t *context,
const char *group,
lu_error_t **error);
Returns a list of all members of a group group
.
context : | a context
|
group : | group name
|
error : | filled with a lu_error if an error occurs
|
Returns : | an array of strings, each representing one user name. The array
should be freed by the caller.
|
lu_users_enumerate_full ()
GPtrArray* lu_users_enumerate_full (lu_context_t *context,
const char *pattern,
lu_error_t **error);
Returns a list of entities, one for each user matching a pattern.
context : | a context
|
pattern : | a glob-like pattern for user name
|
error : | filled with a lu_error if an error occurs
|
Returns : | a list of pointers to user entities. The entities and the
list should be freed by the caller.
|
lu_group_lookup_name ()
gboolean lu_group_lookup_name (lu_context_t *context,
const char *name,
struct lu_ent *ent,
lu_error_t **error);
Looks up a group by name.
context : | a context
|
name : | group name
|
ent : | an entity filled with received information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_lookup_id ()
gboolean lu_group_lookup_id (lu_context_t *context,
gid_t gid,
struct lu_ent *ent,
lu_error_t **error);
Looks up a group by GID.
context : | a context
|
gid : | group ID
|
ent : | an entity filled with received information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_default ()
gboolean lu_group_default (lu_context_t *ctx,
const char *name,
gboolean system_account,
struct lu_ent *ent);
Fills out a group entity as specified by the config file and modules
to prepare for creation of the group.
ctx : | a context
|
name : | new group name
|
system_account : | non-zero if the group is a system group
|
ent : | an entity
|
Returns : | TRUE on success
|
lu_group_add ()
gboolean lu_group_add (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Creates a group in all modules specified for entity creation.
context : | a context
|
ent : | an entity describing the group, on success updated with resulting account
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_modify ()
gboolean lu_group_modify (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Modifies a group entity.
context : | a context
|
ent : | an entity with pending modifications, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_delete ()
gboolean lu_group_delete (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Deletes a group.
context : | a context
|
ent : | an entity describing the group
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_setpass ()
gboolean lu_group_setpass (lu_context_t *context,
struct lu_ent *ent,
const char *newpass,
gboolean crypted,
lu_error_t **error);
Changes a group password.
context : | a contect
|
ent : | an entity describing the group, on success updated with current
information and LU_SHADOWLASTCHANGE
|
newpass : | new password
|
crypted : | non-zero if newpass is already encrypted
|
error : | filled with an lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_removepass ()
gboolean lu_group_removepass (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Changes a group password to an empty string.
context : | a context
|
ent : | an entity describing the group, on success udpated with current
information and LU_SHADOWLASTCHANGE
|
error : | filled with in lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_lock ()
gboolean lu_group_lock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Locks a group account
context : | a context
|
ent : | an entity describing the group, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_unlock ()
gboolean lu_group_unlock (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Unlocks a group account.
context : | a context
|
ent : | an entity describing the group, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_unlock_nonempty ()
gboolean lu_group_unlock_nonempty (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Unlocks a group account. If unlocking the account would result in an empty
password field, it fails with lu_error_unlock_empty
. Note that the
password can still be empty.
context : | a context
|
ent : | an entity describing the group, on success updated with current
information
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE on success
|
lu_group_islocked ()
gboolean lu_group_islocked (lu_context_t *context,
struct lu_ent *ent,
lu_error_t **error);
Checks if a group account is locked.
context : | a context
|
ent : | an entity describing the group
|
error : | filled with a lu_error if an error occurs
|
Returns : | TRUE if the account is locked in at least one module
|
lu_groups_enumerate ()
GValueArray* lu_groups_enumerate (lu_context_t *context,
const char *pattern,
lu_error_t **error);
Returns a list of all groups matching a pattern.
context : | a context
|
pattern : | a glob-like pattern for group name
|
error : | filled with a lu_error if an error occurs
|
Returns : | an array of strings, each representing one group name. The array
should be freed by the caller.
|
lu_groups_enumerate_by_user ()
GValueArray* lu_groups_enumerate_by_user (lu_context_t *context,
const char *user,
lu_error_t **error);
Returns a list of all groups containing an user user
.
context : | a context
|
user : | user name
|
error : | filled with a lu_error if an error occurs
|
Returns : | an array of strings, each representing one group name. The array
should be freed by the caller.
|
lu_groups_enumerate_full ()
GPtrArray* lu_groups_enumerate_full (lu_context_t *context,
const char *pattern,
lu_error_t **error);
Returns a list of entities, one for each group matching a pattern.
context : | a context
|
pattern : | a glob-like pattern for group name
|
error : | filled with a lu_error if an error occurs
|
Returns : | a list of pointers to group entities. The entities and the
list should be freed by the caller.
|