sssd 2.12.0
sss_cli.h
1/*
2 SSSD
3
4 Client Interface for NSS and PAM.
5
6 Authors:
7 Simo Sorce <ssorce@redhat.com>
8
9 Copyright (C) Red Hat, Inc 2007
10
11 This program is free software; you can redistribute it and/or modify
12 it under the terms of the GNU Lesser General Public License as published by
13 the Free Software Foundation; either version 3 of the License, or
14 (at your option) any later version.
15
16 This program is distributed in the hope that it will be useful,
17 but WITHOUT ANY WARRANTY; without even the implied warranty of
18 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 GNU Lesser General Public License for more details.
20
21 You should have received a copy of the GNU Lesser General Public License
22 along with this program. If not, see <http://www.gnu.org/licenses/>.
23*/
24
25#ifndef _SSSCLI_H
26#define _SSSCLI_H
27
28#include "config.h"
29
30#include <nss.h>
31#include <pwd.h>
32#include <grp.h>
33#include <string.h>
34#include <stdint.h>
35#include <stdbool.h>
36#include <limits.h>
37
38#include "shared/safealign.h"
39
40#ifndef HAVE_ERRNO_T
41#define HAVE_ERRNO_T
42typedef int errno_t;
43#else
44#include <errno.h>
45#endif
46
47#ifndef EOK
48#define EOK 0
49#endif
50
51#ifndef NETDB_INTERNAL
52#define NETDB_INTERNAL (-1)
53#endif
54
55#define SSS_NSS_PROTOCOL_VERSION 1
56#define SSS_PAM_PROTOCOL_VERSION 3
57#define SSS_SUDO_PROTOCOL_VERSION 1
58#define SSS_AUTOFS_PROTOCOL_VERSION 1
59#define SSS_SSH_PROTOCOL_VERSION 0
60#define SSS_PAC_PROTOCOL_VERSION 1
61
62#ifdef LOGIN_NAME_MAX
63#define SSS_NAME_MAX LOGIN_NAME_MAX
64#else
65#define SSS_NAME_MAX 256
66#endif
67
72
74
76/* null */
77 SSS_CLI_NULL = 0x0000,
78
79/* version */
80 SSS_GET_VERSION = 0x0001,
81
82/* passwd */
83
84 SSS_NSS_GETPWNAM = 0x0011,
85 SSS_NSS_GETPWUID = 0x0012,
86 SSS_NSS_SETPWENT = 0x0013,
87 SSS_NSS_GETPWENT = 0x0014,
88 SSS_NSS_ENDPWENT = 0x0015,
89
90 SSS_NSS_GETPWNAM_EX = 0x0019,
91 SSS_NSS_GETPWUID_EX = 0x001A,
92
93/* group */
94
95 SSS_NSS_GETGRNAM = 0x0021,
96 SSS_NSS_GETGRGID = 0x0022,
97 SSS_NSS_SETGRENT = 0x0023,
98 SSS_NSS_GETGRENT = 0x0024,
99 SSS_NSS_ENDGRENT = 0x0025,
100 SSS_NSS_INITGR = 0x0026,
101
102 SSS_NSS_GETGRNAM_EX = 0x0029,
103 SSS_NSS_GETGRGID_EX = 0x002A,
104 SSS_NSS_INITGR_EX = 0x002E,
105
106#if 0
107/* aliases */
108
109 SSS_NSS_GETALIASBYNAME = 0x0031,
110 SSS_NSS_GETALIASBYPORT = 0x0032,
111 SSS_NSS_SETALIASENT = 0x0033,
112 SSS_NSS_GETALIASENT = 0x0034,
113 SSS_NSS_ENDALIASENT = 0x0035,
114
115/* ethers */
116
117 SSS_NSS_GETHOSTTON = 0x0041,
118 SSS_NSS_GETNTOHOST = 0x0042,
119 SSS_NSS_SETETHERENT = 0x0043,
120 SSS_NSS_GETETHERENT = 0x0044,
121 SSS_NSS_ENDETHERENT = 0x0045,
122#endif
123
124/* hosts */
125
126 SSS_NSS_GETHOSTBYNAME = 0x0051,
127 SSS_NSS_GETHOSTBYNAME2 = 0x0052,
128 SSS_NSS_GETHOSTBYADDR = 0x0053,
129 SSS_NSS_SETHOSTENT = 0x0054,
130 SSS_NSS_GETHOSTENT = 0x0055,
131 SSS_NSS_ENDHOSTENT = 0x0056,
132
133/* netgroup */
134
135 SSS_NSS_SETNETGRENT = 0x0061,
136 SSS_NSS_GETNETGRENT = 0x0062,
137 SSS_NSS_ENDNETGRENT = 0x0063,
138
139/* networks */
140
141 SSS_NSS_GETNETBYNAME = 0x0071,
142 SSS_NSS_GETNETBYADDR = 0x0072,
143 SSS_NSS_SETNETENT = 0x0073,
144 SSS_NSS_GETNETENT = 0x0074,
145 SSS_NSS_ENDNETENT = 0x0075,
146
147#if 0
148/* protocols */
149
150 SSS_NSS_GETPROTOBYNAME = 0x0081,
151 SSS_NSS_GETPROTOBYNUM = 0x0082,
152 SSS_NSS_SETPROTOENT = 0x0083,
153 SSS_NSS_GETPROTOENT = 0x0084,
154 SSS_NSS_ENDPROTOENT = 0x0085,
155
156/* rpc */
157
158 SSS_NSS_GETRPCBYNAME = 0x0091,
159 SSS_NSS_GETRPCBYNUM = 0x0092,
160 SSS_NSS_SETRPCENT = 0x0093,
161 SSS_NSS_GETRPCENT = 0x0094,
162 SSS_NSS_ENDRPCENT = 0x0095,
163#endif
164
165/* services */
166
167 SSS_NSS_GETSERVBYNAME = 0x00A1,
168 SSS_NSS_GETSERVBYPORT = 0x00A2,
169 SSS_NSS_SETSERVENT = 0x00A3,
170 SSS_NSS_GETSERVENT = 0x00A4,
171 SSS_NSS_ENDSERVENT = 0x00A5,
172
173#if 0
174/* shadow */
175
176 SSS_NSS_GETSPNAM = 0x00B1,
177 SSS_NSS_GETSPUID = 0x00B2,
178 SSS_NSS_SETSPENT = 0x00B3,
179 SSS_NSS_GETSPENT = 0x00B4,
180 SSS_NSS_ENDSPENT = 0x00B5,
181#endif
182
183/* SUDO */
184 SSS_SUDO_GET_SUDORULES = 0x00C1,
185 SSS_SUDO_GET_DEFAULTS = 0x00C2,
186
187/* autofs */
188 SSS_AUTOFS_SETAUTOMNTENT = 0x00D1,
189 SSS_AUTOFS_GETAUTOMNTENT = 0x00D2,
190 SSS_AUTOFS_GETAUTOMNTBYNAME = 0x00D3,
191 SSS_AUTOFS_ENDAUTOMNTENT = 0x00D4,
192
193/* SSH */
194 SSS_SSH_GET_USER_PUBKEYS = 0x00E1,
195 SSS_SSH_GET_HOST_PUBKEYS = 0x00E2,
196
197/* PAM related calls */
236 SSS_CMD_RENEW = 0x00F8,
245
246/* PAC responder calls */
247 SSS_PAC_ADD_PAC_USER = 0x0101,
248
249/* ID-SID mapping calls */
316
317
318/* subid */
321};
322 /* end of group sss_cli_command */
326
327
344 /* end of group sss_pam */
348
358
360
402 /* end of group sss_authtok_type */
406
407#define SSS_START_OF_PAM_REQUEST 0x4d415049
408#define SSS_END_OF_PAM_REQUEST 0x4950414d
409
410#define PAM_PREAUTH_INDICATOR PUBCONF_PATH"/pam_preauth_available"
411
412enum pam_item_type {
413 SSS_PAM_ITEM_EMPTY = 0x0000,
414 SSS_PAM_ITEM_USER,
415 SSS_PAM_ITEM_SERVICE,
416 SSS_PAM_ITEM_TTY,
417 SSS_PAM_ITEM_RUSER,
418 SSS_PAM_ITEM_RHOST,
419 SSS_PAM_ITEM_AUTHTOK,
420 SSS_PAM_ITEM_NEWAUTHTOK,
421 SSS_PAM_ITEM_CLI_LOCALE,
422 SSS_PAM_ITEM_CLI_PID,
423 SSS_PAM_ITEM_CHILD_PID,
424 SSS_PAM_ITEM_REQUESTED_DOMAINS,
425 SSS_PAM_ITEM_FLAGS,
426 SSS_PAM_ITEM_JSON_AUTH_INFO,
427 SSS_PAM_ITEM_JSON_AUTH_SELECTED,
428};
429
430#define PAM_CLI_FLAGS_USE_FIRST_PASS (1 << 0)
431#define PAM_CLI_FLAGS_FORWARD_PASS (1 << 1)
432#define PAM_CLI_FLAGS_USE_AUTHTOK (1 << 2)
433#define PAM_CLI_FLAGS_IGNORE_UNKNOWN_USER (1 << 3)
434#define PAM_CLI_FLAGS_IGNORE_AUTHINFO_UNAVAIL (1 << 4)
435#define PAM_CLI_FLAGS_USE_2FA (1 << 5)
436#define PAM_CLI_FLAGS_ALLOW_MISSING_NAME (1 << 6)
437#define PAM_CLI_FLAGS_PROMPT_ALWAYS (1 << 7)
438#define PAM_CLI_FLAGS_TRY_CERT_AUTH (1 << 8)
439#define PAM_CLI_FLAGS_REQUIRE_CERT_AUTH (1 << 9)
440#define PAM_CLI_FLAGS_ALLOW_CHAUTHTOK_BY_ROOT (1 << 10)
441#define PAM_CLI_FLAGS_CHAUTHTOK_PREAUTH (1 << 11)
442
443#define SSS_NSS_MAX_ENTRIES 256
444#define SSS_NSS_HEADER_SIZE (sizeof(uint32_t) * 4)
445struct sss_cli_req_data {
446 size_t len;
447 const void *data;
448};
449
450/* this is in milliseconds, wait up to 300 seconds */
451#define SSS_CLI_SOCKET_TIMEOUT 300000
452
453enum sss_status {
454 SSS_STATUS_TRYAGAIN,
455 SSS_STATUS_UNAVAIL,
456 SSS_STATUS_SUCCESS
457};
458
464
486
488
577
601
603
664 /* end of group user_info_type */
667 /* end of group response_type */
671 /* end of group sss_pam_cli */
675
676
677enum prompt_config_type {
678 PC_TYPE_INVALID = 0,
679 PC_TYPE_PASSWORD,
680 PC_TYPE_2FA,
681 PC_TYPE_2FA_SINGLE,
682 PC_TYPE_PASSKEY,
683 PC_TYPE_SMARTCARD,
684 PC_TYPE_EIDP,
685 PC_TYPE_LAST
686};
687
688struct prompt_config;
689
690enum prompt_config_type pc_get_type(struct prompt_config *pc);
691const char *pc_get_password_prompt(struct prompt_config *pc);
692const char *pc_get_2fa_1st_prompt(struct prompt_config *pc);
693const char *pc_get_2fa_2nd_prompt(struct prompt_config *pc);
694const char *pc_get_2fa_single_prompt(struct prompt_config *pc);
695const char *pc_get_passkey_inter_prompt(struct prompt_config *pc);
696const char *pc_get_passkey_touch_prompt(struct prompt_config *pc);
697const char *pc_get_eidp_init_prompt(struct prompt_config *pc);
698const char *pc_get_eidp_link_prompt(struct prompt_config *pc);
699const char *pc_get_smartcard_init_prompt(struct prompt_config *pc);
700const char *pc_get_smartcard_pin_prompt(struct prompt_config *pc);
701errno_t pc_list_add_passkey(struct prompt_config ***pc_list,
702 const char *inter_prompt,
703 const char *touch_prompt);
704void pc_list_free(struct prompt_config **pc_list);
705errno_t pc_list_add_password(struct prompt_config ***pc_list,
706 const char *prompt);
707errno_t pc_list_add_2fa(struct prompt_config ***pc_list,
708 const char *prompt_1st, const char *prompt_2nd);
709errno_t pc_list_add_2fa_single(struct prompt_config ***pc_list,
710 const char *prompt);
711errno_t pc_list_add_eidp(struct prompt_config ***pc_list,
712 const char *prompt_init, const char *prompt_link);
713errno_t pc_list_add_smartcard(struct prompt_config ***pc_list,
714 const char *prompt_init, const char *prompt_pin);
715errno_t pam_get_response_prompt_config(struct prompt_config **pc_list, int *len,
716 uint8_t **data);
717errno_t pc_list_from_response(int size, uint8_t *buf,
718 struct prompt_config ***pc_list);
719
720enum sss_netgr_rep_type {
721 SSS_NETGR_REP_TRIPLE = 1,
722 SSS_NETGR_REP_GROUP
723};
724
725enum sss_cli_error_codes {
726 ESSS_SSS_CLI_ERROR_START = 0x1000,
727 ESSS_BAD_SOCKET,
728 ESSS_BAD_CRED_MSG,
729 ESSS_SERVER_NOT_TRUSTED,
730 ESSS_NO_SOCKET,
731 ESSS_SOCKET_STAT_ERROR,
732
733 ESS_SSS_CLI_ERROR_MAX
734};
735
736const char *ssscli_err2string(int err);
737
738enum sss_status sss_cli_make_request_with_checks(enum sss_cli_command cmd,
739 struct sss_cli_req_data *rd,
740 int timeout,
741 uint8_t **repbuf, size_t *replen,
742 int *errnop,
743 const char *socket_name,
744 bool check_server_creds,
745 bool allow_custom_errors);
746
747enum nss_status sss_nss_make_request(enum sss_cli_command cmd,
748 struct sss_cli_req_data *rd,
749 uint8_t **repbuf, size_t *replen,
750 int *errnop);
751
752enum nss_status sss_nss_make_request_timeout(enum sss_cli_command cmd,
753 struct sss_cli_req_data *rd,
754 int timeout,
755 uint8_t **repbuf, size_t *replen,
756 int *errnop);
757
758int sss_pam_make_request(enum sss_cli_command cmd,
759 struct sss_cli_req_data *rd,
760 uint8_t **repbuf, size_t *replen,
761 int *errnop);
762
763void sss_cli_close_socket(void);
764
765/* Checks access to the PAC responder and opens the socket, if available.
766 * Required for processes like krb5_child that need to open the socket
767 * before dropping privs.
768 */
769int sss_pac_check_and_open(void);
770
771int sss_pac_make_request(enum sss_cli_command cmd,
772 struct sss_cli_req_data *rd,
773 uint8_t **repbuf, size_t *replen,
774 int *errnop);
775
776int sss_pac_make_request_with_lock(enum sss_cli_command cmd,
777 struct sss_cli_req_data *rd,
778 uint8_t **repbuf, size_t *replen,
779 int *errnop);
780
781#if 0
782
783/* GETSPNAM Request:
784 *
785 * 0-X: string with name
786 *
787 * Replies:
788 *
789 * 0-3: 32bit unsigned number of results
790 * 4-7: 32bit unsigned (reserved/padding)
791 * For each result:
792 * 0-7: 64bit unsigned with Date of last change
793 * 8-15: 64bit unsigned with Min #days between changes
794 * 16-23: 64bit unsigned with Max #days between changes
795 * 24-31: 64bit unsigned with #days before pwd expires
796 * 32-39: 64bit unsigned with #days after pwd expires until account is disabled
797 * 40-47: 64bit unsigned with expiration date in days since 1970-01-01
798 * 48-55: 64bit unsigned (flags/reserved)
799 * 56-X: sequence of 2, 0 terminated, strings (name, pwd) 64bit padded
800 */
801#endif
802
803/* Return strlen(str) or maxlen, whichever is shorter
804 * Returns EINVAL if str is NULL, EFBIG if str is longer than maxlen
805 * _len will return the result
806 */
807errno_t sss_strnlen(const char *str, size_t maxlen, size_t *len);
808
809void sss_nss_lock(void);
810void sss_nss_unlock(void);
811void sss_pam_lock(void);
812void sss_pam_unlock(void);
813void sss_nss_mc_lock(void);
814void sss_nss_mc_unlock(void);
815void sss_pac_lock(void);
816void sss_pac_unlock(void);
817
818errno_t sss_readrep_copy_string(const char *in,
819 size_t *offset,
820 size_t *slen,
821 size_t *dlen,
822 char **out,
823 size_t *size);
824
825enum pam_gssapi_cmd {
826 PAM_GSSAPI_GET_NAME,
827 PAM_GSSAPI_INIT,
828 PAM_GSSAPI_SENTINEL
829};
830
831#endif /* _SSSCLI_H */
response_type
Types of different messages.
Definition sss_cli.h:489
@ SSS_PAM_TEXT_MSG
A plain text message which should be displayed to the user.
Definition sss_cli.h:510
@ SSS_CHILD_KEEP_ALIVE
Indicates that the child process is kept alived and further communication must be done with the same ...
Definition sss_cli.h:547
@ SSS_PASSWORD_PROMPTING
Indicates that password prompting is possible.
Definition sss_cli.h:530
@ SSS_PAM_ENV_ITEM
Set and environment variable with pam_putenv(3).
Definition sss_cli.h:496
@ SSS_PAM_CERT_INFO
A message indicating that Smartcard/certificate based authentication is available and contains detail...
Definition sss_cli.h:520
@ SSS_PAM_CERT_INFO_WITH_HINT
Same as SSS_PAM_CERT_INFO but user name might be missing and should be prompted for.
Definition sss_cli.h:541
@ SSS_ENV_ITEM
Set and environment variable with putenv(3).
Definition sss_cli.h:499
@ SSS_PAM_SYSTEM_INFO
Message for the system log.
Definition sss_cli.h:490
@ SSS_CERT_AUTH_PROMPTING
Indicates that on the server side Smartcard/certificate based authentication is available for the sel...
Definition sss_cli.h:535
@ SSS_PAM_PROMPT_CONFIG
Contains data which controls which credentials are expected and how the user is prompted for them.
Definition sss_cli.h:544
@ SSS_PAM_PASSKEY_INFO
Indicates that passkey authentication is available.
Definition sss_cli.h:558
@ SSS_PAM_OTP_INFO
A message which optionally may contain the name of the vendor, the ID of an OTP token and a challenge...
Definition sss_cli.h:514
@ SSS_PAM_USER_INFO
A message which should be displayed to the user.
Definition sss_cli.h:507
@ SSS_PAM_PASSKEY_KRB_INFO
A message containing the passkey parameters for the user.
Definition sss_cli.h:564
@ SSS_OTP
Indicates that the authtok was a OTP, so don't cache it.
Definition sss_cli.h:527
@ SSS_PAM_JSON_AUTH_INFO
A JSON formatted message containing the available authentication mechanisms and their associated data...
Definition sss_cli.h:571
@ SSS_PAM_OAUTH2_INFO
A message which contains the oauth2 parameters for the user.
Definition sss_cli.h:551
@ SSS_ALL_ENV_ITEM
Set and environment variable with putenv(3) and pam_putenv(3).
Definition sss_cli.h:502
@ SSS_PAM_DOMAIN_NAME
Name of the domain the user belongs too.
Definition sss_cli.h:492
sss_authtok_type
The different types of authentication tokens.
Definition sss_cli.h:361
@ SSS_AUTHTOK_TYPE_PASSKEY_REPLY
Authentication token contains Passkey reply data presented as a kerberos challenge answer.
Definition sss_cli.h:395
@ SSS_AUTHTOK_TYPE_2FA
Authentication token has two factors, they may or may no contain a trailing \0.
Definition sss_cli.h:371
@ SSS_AUTHTOK_TYPE_SC_PIN
Authentication token is a Smart Card PIN, it may or may no contain a trailing \0.
Definition sss_cli.h:374
@ SSS_AUTHTOK_TYPE_PASSWORD
Authentication token is a password, it may or may no contain a trailing \0.
Definition sss_cli.h:364
@ SSS_AUTHTOK_TYPE_SC_KEYPAD
Authentication token indicates Smart Card authentication is used and that the PIN will be entered at ...
Definition sss_cli.h:377
@ SSS_AUTHTOK_TYPE_PAM_STACKED
Authentication token contains either 2FA_SINGLE or PASSWORD via PAM use_first_pass.
Definition sss_cli.h:398
@ SSS_AUTHTOK_TYPE_2FA_SINGLE
Authentication token has two factors in a single string, it may or may no contain a trailing \0.
Definition sss_cli.h:381
@ SSS_AUTHTOK_TYPE_PASSKEY
Authentication token is a Passkey PIN, it may or may not contain a trailing \0.
Definition sss_cli.h:389
@ SSS_AUTHTOK_TYPE_CCFILE
Authentication token is a path to a Kerberos credential cache file, it may or may no contain a traili...
Definition sss_cli.h:367
@ SSS_AUTHTOK_TYPE_PASSKEY_KRB
Authentication token contains Passkey data used for Kerberos pre-authentication.
Definition sss_cli.h:392
@ SSS_AUTHTOK_TYPE_OAUTH2
Authentication token is a oauth2 token for presented challenge that is acquired from Kerberos.
Definition sss_cli.h:384
@ SSS_AUTHTOK_TYPE_EMPTY
No authentication token available.
Definition sss_cli.h:362
sss_cli_command
The allowed commands an SSS client can send to the SSSD.
Definition sss_cli.h:75
@ SSS_GSSAPI_SEC_CTX
Establish GSSAPI security ctx.
Definition sss_cli.h:244
@ SSS_NSS_GETLISTBYCERT
Takes the zero terminated string of the base64 encoded DER representation of a X509 certificate and r...
Definition sss_cli.h:281
@ SSS_NSS_GETORIGBYGROUPNAME
Takes a zero terminated fully qualified group name and returns a list of zero terminated strings with...
Definition sss_cli.h:301
@ SSS_PAM_OPEN_SESSION
see pam_sm_open_session(3) for details
Definition sss_cli.h:223
@ SSS_PAM_SETCRED
see pam_sm_setcred(3) for details
Definition sss_cli.h:219
@ SSS_NSS_GETIDBYSID
Takes the zero terminated string representation of a SID and returns and returns the POSIX ID of the ...
Definition sss_cli.h:262
@ SSS_PAM_CLOSE_SESSION
see pam_sm_close_session(3) for details
Definition sss_cli.h:225
@ SSS_NSS_GET_SUBID_RANGES
Requests both subuid and subgid ranges defined for a user.
Definition sss_cli.h:319
@ SSS_NSS_GETORIGBYNAME
Takes a zero terminated fully qualified name and returns a list of zero terminated strings with key-v...
Definition sss_cli.h:269
@ SSS_NSS_GETORIGBYUSERNAME
Takes a zero terminated fully qualified user name and returns a list of zero terminated strings with ...
Definition sss_cli.h:294
@ SSS_GSSAPI_INIT
Initialize GSSAPI authentication.
Definition sss_cli.h:243
@ SSS_PAM_ACCT_MGMT
see pam_sm_acct_mgmt(3) for details
Definition sss_cli.h:221
@ SSS_NSS_GETSIDBYUSERNAME
Takes a zero terminated fully qualified name and returns the zero terminated string representation of...
Definition sss_cli.h:308
@ SSS_CMD_RENEW
Renew a credential with a limited lifetime, e.g.
Definition sss_cli.h:236
@ SSS_PAM_AUTHENTICATE
see pam_sm_authenticate(3) for details.
Definition sss_cli.h:198
@ SSS_PAM_CHAUTHTOK
second run of the password change operation where the PAM_UPDATE_AUTHTOK flag is set and the real cha...
Definition sss_cli.h:227
@ SSS_NSS_GETSIDBYNAME
Takes a zero terminated fully qualified name and returns the zero terminated string representation of...
Definition sss_cli.h:250
@ SSS_NSS_GETSIDBYUID
Takes an unsigned 32bit integer (POSIX UID) and return the zero terminated string representation of t...
Definition sss_cli.h:286
@ SSS_NSS_GETNAMEBYCERT
Takes the zero terminated string of the base64 encoded DER representation of a X509 certificate and r...
Definition sss_cli.h:276
@ SSS_NSS_GETSIDBYGROUPNAME
Takes a zero terminated fully qualified name and returns the zero terminated string representation of...
Definition sss_cli.h:312
@ SSS_PAM_PREAUTH
Request which can be run before an authentication request to find out which authentication methods ar...
Definition sss_cli.h:239
@ SSS_NSS_GETSIDBYID
Takes an unsigned 32bit integer (POSIX ID) and returns the zero terminated string representation of t...
Definition sss_cli.h:254
@ SSS_NSS_GETSIDBYGID
Takes an unsigned 32bit integer (POSIX GID) and return the zero terminated string representation of t...
Definition sss_cli.h:290
@ SSS_PAM_CHAUTHTOK_PRELIM
first run of the password change operation where the PAM_PRELIM_CHECK flag is set,...
Definition sss_cli.h:232
@ SSS_NSS_GETNAMEBYSID
Takes the zero terminated string representation of a SID and returns the zero terminated fully qualif...
Definition sss_cli.h:258
user_info_type
Different types of user messages.
Definition sss_cli.h:604
@ SSS_PAM_USER_INFO_CHPASS_ERROR
Tell the user that a password change failed and optionally give a reason.
Definition sss_cli.h:632
@ SSS_PAM_USER_INFO_OFFLINE_AUTH_DELAYED
Tell the user how low a new authentication is delayed.
Definition sss_cli.h:616
@ SSS_PAM_USER_INFO_OTP_CHPASS
Tell the user that he needs to kinit or login and logout to get a TGT after an OTP password change.
Definition sss_cli.h:629
@ SSS_PAM_USER_INFO_OFFLINE_CHPASS
Definition sss_cli.h:625
@ SSS_PAM_USER_INFO_EXPIRE_WARN
Warn the user that the password will expire soon.
Definition sss_cli.h:645
@ SSS_PAM_USER_INFO_ACCOUNT_EXPIRED
Tell the user that the account has expired and optionally give a reason.
Definition sss_cli.h:650
@ SSS_PAM_USER_INFO_NO_KRB_TGT
Tell the user that Kerberos local/offline auth was performed, therefore no TGT is granted.
Definition sss_cli.h:660
@ SSS_PAM_USER_INFO_PIN_LOCKED
Tell the user that the PIN is locked.
Definition sss_cli.h:659
@ SSS_PAM_USER_INFO_GRACE_LOGIN
Warn the user that the password is expired and inform about the remaining number of grace logins.
Definition sss_cli.h:640
@ SSS_PAM_USER_INFO_OFFLINE_AUTH
Inform the user that the authentication happened offline.
Definition sss_cli.h:605