sudo
não lê a senha de stdin
por padrão. De sudo
manpage:
-S The -S (stdin) option causes sudo to read the password from the standard input instead of the terminal device.
The password must be followed by a newline character.
Então você deve executar:
sudo -S apt-get update <~/passwd.txt
Tenha em mente que armazenar senhas em arquivos não é uma boa prática. Você deveria ler: