diff options
-rw-r--r-- | src/man/include/override_homedir.xml | 4 | ||||
-rw-r--r-- | src/util/sss_nss.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/man/include/override_homedir.xml b/src/man/include/override_homedir.xml index 61de52e00..803cd1980 100644 --- a/src/man/include/override_homedir.xml +++ b/src/man/include/override_homedir.xml @@ -24,6 +24,10 @@ <listitem><para>fully qualified user name (user@domain)</para></listitem> </varlistentry> <varlistentry> + <term>%l</term> + <listitem><para>The first letter of the login name.</para></listitem> + </varlistentry> + <varlistentry> <term>%P</term> <listitem><para>UPN - User Principal Name (name@REALM)</para></listitem> </varlistentry> diff --git a/src/util/sss_nss.c b/src/util/sss_nss.c index d1ad5433f..cf91a2c53 100644 --- a/src/util/sss_nss.c +++ b/src/util/sss_nss.c @@ -88,6 +88,23 @@ char *expand_homedir_template(TALLOC_CTX *mem_ctx, talloc_free(username); break; + case 'l': + if (homedir_ctx->username == NULL) { + DEBUG(SSSDBG_CRIT_FAILURE, + "Cannot expand first letter of user name template " + "because user name is empty.\n"); + goto done; + } + username = sss_output_name(tmp_ctx, homedir_ctx->username, + case_sensitive, 0); + if (username == NULL) { + goto done; + } + + result = talloc_asprintf_append(result, "%s%c", p, username[0]); + talloc_free(username); + break; + case 'U': if (homedir_ctx->uid == 0) { DEBUG(SSSDBG_CRIT_FAILURE, "Cannot expand uid template " |