Ubuntu – Make user home directory at gdm login

pamradiusUbuntu

I'm trying to make home directory at (RADIUS) user gdm login.

The auth is working right, but when I try gdm says that the user hasn't a home directory.

I tried to do that with pam_mkhomedir.so but is not working.

My /etc/pam.d/gdm file:

PAM-1.0
auth    sufficient  pam_radius_auth.so  
auth    sufficient       pam_nologin.so 
auth    sufficient        pam_env.so readenv=1 
auth    sufficient        pam_env.so readenv=1 envfile=/etc/default/locale
auth    sufficient  pam_succeed_if.so 
@include common-auth 
auth    optional        pam_gnome_keyring.so 
account sufficient  pam_radius_auth.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session optional        pam_limits.so 
@include common-session 
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open 
session optional        pam_gnome_keyring.so auto_start 
session required    pam_mkhomedir.so skel=/etc/skel umask=0022
@include common-password

I'm posting the configuration files:

/etc/pam.d/common-account

account sufficient pam_radius_auth.so
session required pam_mkhomedir.so

account [success=1 new_authtok_reqd=done default=ignore] pam_unix.so
account requisite pam_deny.so
account required pam_permit.so

/etc/pam.d/common-auth

auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so

/etc/pam.d/common-session

session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session required pam_mkhomedir.so
session required pam_unix.so
session optional pam_ck_connector.so nox11

/etc/pam.d/gdm

auth sufficient pam_radius_auth.so debug
auth requisite pam_nologin.so
auth sufficient pam_env.so readenv=1
auth sufficient pam_env.so readenv=1 envfile=/etc/default/locale
auth sufficient pam_succeed_if.so user ingroup nopasswdlogin
@include common-auth
auth optional pam_gnome_keyring.so
account sufficient pam_radius_auth.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required pam_limits.so
session sufficient pam_mkhomedir.so skel=/home/formacio umask=0022
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
session optional pam_gnome_keyring.so auto_start
@include common-password

/etc/pam.d/login

auth required pam_securetty.so
auth requisite pam_nologin.so
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required pam_env.so readenv=1
session required pam_env.so readenv=1 envfile=/etc/default/locale
# Standard Un*x authentication.
@include common-auth
auth optional pam_group.so
session required pam_limits.so
session optional pam_lastlog.so
session optional pam_motd.so
session optional pam_mail.so standard
# Standard Un*x account and session
@include common-account
@include common-session
@include common-password
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open

Best Answer

Forgive me the dumb question, but have you installed the libpam-modules package which contains pam_mkhomedir.so? It's not installed by default on my copy of Ubuntu.

Failing that, you might want to try moving the line to /etc/pam.d/common-session, just in case the config files aren't being called in the order you expect. Your syntax looks correct, so it ought to work once you've got all the pieces in place.

You might also find the pam_debug module useful; it can let you shape exactly what path you want authentication to take.