Veja como resolvi isso, em vez de executar "sudo bash" ou, no seu caso, executar "sudo -c" (o que faz o seu script pausar ao alterar o usuário ou simplesmente não funciona) Eu executo três pequenos scripts.
(Não se esqueça de tornar cada um dos scripts executáveis com "chmod + x script_name.sh")
Primeiro script é meu install.sh:
sudo cp third_script.sh /tmp # Copy third_script to tmp for easier access
sudo chmod 0755 /tmp/third_script.sh # This needs to be executable by lightdm
sudo bash second_script.sh # Runs next file
sudo rm /tmp/third_script.sh # Now we can remove the third script
Em seguida, em second_script.sh, adiciono o lightdm ao xhost e executo o terceiro arquivo de script como o lightdm-user:
#!/bin/bash
echo "$USER" # To see if root is running the script
xhost +SI:localuser:lightdm
su lightdm -s /tmp/third_script.sh
E o third_script é onde a mágica acontece:
#!/bin/bash
echo "$USER" # To see if lightdm is running the script
gsettings set com.canonical.unity-greeter background '/background.png'
gsettings set com.canonical.unity-greeter draw-grid false
Isso funciona para mim! Deixe-me saber se existe alguma maneira mais fácil.