sh no ubuntu é um link simbólico para o shell do painel, não para o bash. Dash não suporta o longform --login , mas suporta o formato abreviado, -l (de man dash ):
-lO dash dash age como se tivesse sido chamado como um shell de login.
A substituição de --login por -l em seu comando deve corrigir seu problema.
sudo -n -u contd sh -l -c ". <etc>
Se você quiser chamar bash ao invés de traço, simplesmente chame bash em vez de sh .
sudo -n -u contd bash --login -c ". <etc>