sudo su user
entrará em um novo shell. Essa é a última coisa que você quer fazer quando estiver em um script não interativo. Desculpe, quero dizer que é a última coisa que você quer fazer em um script depois de codificar uma senha nele! Por favor, evite isso.
Você estaria muito melhor em pular su
e usar o sudo sozinho:
sudo -u admin -- ls /usr/bin
Ou se falhar, certifique-se de que seu script seja executado como root com este bloco:
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
E então não há necessidade de interagir dentro do roteiro. Seu script pode usar sudo -u... command
sem precisar alterar a senha.