Files
realmd-arch-helper/realmd-arch-helper.sh
2021-03-03 17:49:44 +01:00

58 lines
2.1 KiB
Bash

#!/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