Usando “include” dentro de /etc/aliases

Ocurre que hay ocasiones en que un usuario me pide “Yo quiero tener un alias en sendmail que contenga a todos los usuarios de mi sistema, de forma tal que cuando escriba a [email protected], el mail llegue a toditos los usuarios de mi sistema”

Partamos de un hecho: Hasta CentOS-6, los usuarios del sistema son los que tienen un uid mayor o igual a 500.

¿Cómo puedo obtener una lista de ellos?

fácil:

cat /etc/passwd|awk -F: ‘$3 >= 500 { print $1; }’

En efecto, con esto obtenemos todos los usuarios con uid => 500.

El problema es que en el archvo /etc/aliases tu piensas que tienes que ponerle en este formato:

todos: usuario1, usuario2, usuario3, usuario4, usuario5

Te imaginas si fueran 300 usuarios? o más? Cómo hacer para mantener actualizada esta lista? Ok, con el primer comando de este post puedes obtener una lista, pero y cómo le insertas la coma? Y si luego un usuario desaparece cómo le eliminas de /etc/aliases? O si se pone uno nuevo o si se cambia?

Bueno, tranquilo, hay una forma, mira, yo en /etc/aliases pondré esto:

todos:         :include:/etc/aliases.todos

include, lo que hace es agregar los usuarios (uno por línea) que estén en el archivo que he definido (/etc/aliases.todos).

fíjate que hay varios signos de :, hay 3 signos de :, uno después de la primera palabra, otro separado por uno o varios TABS e inmediatamente delante de include y otro al final de include e inmediatamente antes de /etc/aliases.todos.

Dentro de /etc/aliases.todos qué hago? Pues simplemente le viertes la salida del primer comando de este post:

cat /etc/passwd|awk -F: ‘$3 >= 500 { print $1; }’ > /etc/aliases.todos

sendmail -bi

y ya, en efecto con esto habremos logrado tener una lista de todos los usuarios.

Y si agrego, modifico, elimino usuarios? Pues vuelves a ejecutar estos dos últimos comandos.. si quieres le pones en un cron cada cierto tiempo, varias horas y ya.

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.