Hmm.. bueno tengo por hay un servidor de correos con sendmail y tiene mas de un dominio agregado con sus respectivas cuentas en el archivo virtusertable el cual tiene le deje el siguiente formato:
y asi sucesivamente con cada dominio bueno el problea que tenia es que alguno dominios tiene hasta 300 cuentas por decir algo y bueno para desavilitar cuentas d eun dominio en particular era tarea un poco gorrosa asi que hice una rutina sencilla para sacar solo la informacion que se encuentra del lado derecho del archivo es decir lo que no tiene "@" y para pasarla por el comando passwd -l o -u dependiendo el caso te la dejo para que le heches un vistazo a lo mejor te puede servir de referencia para lo que necesitas.
Código:
#!/bin/bash
opt=$1
dom=$2
arch='/etc/mail/virtusertable'
for c in `grep $dom $arch|grep ^[^#@]|awk -F" " '{print $2}'|uniq -i -u`;
do passwd $opt $c;
done
Lo que hace es recivir dos parametros un -u o -l y el nombre del dominio lo que hace primero es filtrar el por el nombre de dominio y posterior quita los comentarios y separa por espacio toma la ultima parte y la filtra quitando repetidos al final pasa el parametro de la cuenta al comando passwd con la opcion a ejecutar.