**Authentication of client Ubuntu20 on ActiveDirectory of a nethServer7**{{howhard>3}} This works for a real machine and for a VM. \\ It seems not to work for an **unprivileged** container!! (no login possible)\\ => Must be tested for a privileged container. Main source: https://community.nethserver.org/t/howto-for-neth-7-as-ad-pdc-and-file-server-with-ubuntu-and-windows-clients/8685 \\ \\ Assuming that the ActiveDirectory of the NethServer is running properly: * domain:"domain.tld" \\ * domain for the ActiveDirectory: "ad.domain.tld" (must be configured into the DNS resolver of the domain) \\ * server for the ActriveDirectory of the NethServer: "host.ad.domain.tld" ====== Packages: ====== Install following packages on Ubuntu: # apt-get install realmd ntp adcli sssd libsss-sudo libpam-mount cifs-utils samba-common smbclient krb5-user sssd-tools packagekit Default Kerberos version 5 realm: => AD.DOMAIN.TLD Kerberos servers for your realm: => host.ad.domain.tld Administrative server for your Kerberos realm: => host.ad.domain.tld ====== Kerberos ====== * discover the ad domain: # realm discover host.ad.domain.tld ad.domain.tld type: kerberos realm-name: AD.DOMAIN.TLD domain-name: ad.domain.tld configured: no server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin * join the domain # realm -v join -U administrator host.ad.domain.tld #### and enter the password of "admin" of the NethServer * check # realm list ad.domain.tld type: kerberos realm-name: AD.DOMAIN.TLD domain-name: ad.domain.tld configured: kerberos-member server-software: active-directory client-software: sssd required-package: sssd-tools required-package: sssd required-package: libnss-sss required-package: libpam-sss required-package: adcli required-package: samba-common-bin login-formats: %U@ad.domain.tld login-policy: allow-realm-logins ====== sssd ====== Modidy the conf file of sssd: # nano /etc/sssd/sssd.conf and modify following: "default_shell" => "override_shell" "fallback_homedir = /home/%u@%d" => "override_homedir = /home/%u" "use_fully_qualified_names = True" => "use_fully_qualified_names = False" add at the end: "access_provider = permit" # systemctl restart sssd # systemctl status sssd followinf message seem to be "normal": tkey query failed: GSSAPI error: Major = Unspecified GSS failure. Minor code may provide more information, Minor = Server not found in Kerberos database. # systemctl enable sssd ====== /home ====== For the create of the /home folder: # pam-auth-update --enable mkhomedir ====== lightdm ====== With greeter "lightdm" (e.g. for Xubuntu) => nothing to do. The login via GUI works.\\ __Fine tuning:__ create /etc/lightdm/lightdm.conf.d/00-hide-user-list.conf and insert: [SeatDefaults] greeter-hide-users=true greeter-show-manual-login=true allow-guest=false ====== pam_mount ====== Auto mount of distant folders: * install # apt-get install nfs-common if access of nfs-shares is needed. * Add following into /etc/security/pam_mount.conf.xml after ''''. Don't forget to adjust '''' at the end of the file. * for a samba shared folder: * for the home-folder: * for a nfs share: * for the auto creation of the mount points: add at the end: Despite this ''media/samba-host'' and ''/media/nfs-host'' must be created by hand and get ''chmod 777'' ====== Unmount by logout ====== ===== LXDE ===== The logout doesn't unmout the shares automatically mounted at login => the next user can access them inspite he doesn't have the needed permissions. \\ In order to avoid this: * add at the end of ''/etc/lxdm/lxdm.conf'' session-cleanup-script = /etc/lxdm/post-session.sh * create ''/etc/lxdm/post-session.sh'' and insert in it: #!/bin/bash umount /media/samba-host/* exit 0 * give the needed permissions: sudo chmod 774 /etc/lxdm/post-session.sh sudo chown root:root /etc/lxdm/post-session.sh Forr Xubuntu (XFCE): enter "lightdm" instead of "lxdm" for all commands and parameters ===== Gnome ===== # nano /etc/gdm/PostSession/Default ### and add into it: umount /media/samba-host/*