#!/bin/bash case $1 in --patch-config) unset patched grep realmd-arch-helper.sh /usr/lib/realmd/realmd-distro.conf > /dev/null && patched=1 [ $patched ] && echo Realmd-config already patched && exit 0 cp $0 /usr/local/sbin/ sed -i '/commands/a sssd-enable-logins = /usr/local/sbin/realmd-arch-helper.sh --enable-pam-nss' /usr/lib/realmd/realmd-distro.conf sed -i '/commands/a sssd-disable-logins = /usr/local/sbin/realmd-arch-helper.sh --disable-pam-nss' /usr/lib/realmd/realmd-distro.conf sed -i '/commands/a sssd-enable-service = /usr/bin/systemctl enable sssd' /usr/lib/realmd/realmd-distro.conf sed -i '/commands/a sssd-disable-service = /usr/bin/systemctl disable sssd' /usr/lib/realmd/realmd-distro.conf echo Patched realmd-config, restarting sssd /usr/bin/systemctl restart sssd ;; --enable-pam-nss) cat << EOF > /etc/pam.d/sssd-arch auth sufficient pam_sss.so forward_pass password sufficient pam_sss.so use_authtok session required pam_mkhomedir.so skel=/etc/skel/ umask=0077 session optional pam_sss.so EOF unset pam grep sssd-arch /etc/pam.d/system-auth > /dev/null && pam=1 [ $pam ] && echo "SSSD for PAM already enabled" [ ! $pam ] && sed -i '2 i session include sssd-arch' /etc/pam.d/system-auth [ ! $pam ] && sed -i '2 i password include sssd-arch' /etc/pam.d/system-auth [ ! $pam ] && sed -i '2 i auth include sssd-arch' /etc/pam.d/system-auth grep sssd-arch /etc/pam.d/system-auth > /dev/null && pam=1 [ $pam ] && echo Enabled SSSD in PAM unset nss grep sss /etc/nsswitch.conf > /dev/null && nss=1 [ $nss ] && echo SSSD already enabled in NSS [ ! $nss ] && sed -i '/passwd:/s/$/ sss/' /etc/nsswitch.conf [ ! $nss ] && sed -i '/group:/s/$/ sss/' /etc/nsswitch.conf [ ! $nss ] && sed -i '/shadow:/s/$/ sss/' /etc/nsswitch.conf grep sss /etc/nsswitch.conf > /dev/null && nss=1 [ $nss ] && echo Enabled SSSD in NSS ;; --disable-pam-nss) sed -i '/sssd-arch/d' /etc/pam.d/system-auth sed -i 's/sss//g' /etc/nsswitch.conf ;; *) cat << EOF Script to prepare realmd and realmd-git AUR packages to succesfully join a domain. Run with --patch-config before joining Valid options: --patch-config --enable-pam-nss --disable-pam-nss EOF ;; esac