Você não precisa realmente do loop while se sua intenção é apenas listar os nomes. Além disso, há um erro de sintaxe após login=
, não deve haver espaço.
cut -d: -f1 /etc/passwd | \
while read login;
do
echo username: $login;
done
ou conforme você tentou:
while read line; do
login=$(echo $line | cut -d : -f 1)
echo $login
done < /etc/passwd
ainda melhor:
db-getent passwd |cut -d: -f1 | xargs -L1 echo name: