¿Es posible consultar el archivo /etc/passwd para ver todos los UIDS de usuario inferiores a 200 y comprobar si esos usuarios están dentro de un archivo como /etc/ftpusers?
Hasta ahora, he logrado crear el siguiente comando que enumera a todos los usuarios con un UID inferior a 200, pero no estoy seguro de cómo verificar si esos usuarios enumerados están dentro del archivo /etc/ftpusers.
grep -Ev "^\+" /etc/passwd | awk -F: '($3 < 200) {print $1}'
Si algún usuario no está en el archivo, necesito que se genere la diferencia. Intenté utilizar una declaración for pero no funcionó bien.
Respuesta1
No sé si aix diff
tengo la misma opción, GNU diff
pero en mi linux
esto cuando se ejecuta con ksh
(el shell predeterminado en aix
) funciona:
diff -I "^#" --new-line-format="" --unchanged-line-format="" <(awk -F: '$3 < 200 {print $1}' /etc/passwd) /etc/ftpusers
Si el diff
comando difiere, intente con un bucle:
for u in $(awk -F":" '$3 < 200 {print $1}' /etc/passwd); do
count=$(grep -scx "$u" /etc/ftpusers)
[ "$count" -gt 0 ] || echo "$u"
done
Lo he probado ksh
y funciona.
También he comprobado las grep
opciones disponibles en el grep
sistema distribuido aix
y admite tanto -c
contar como -s
suprimir mensajes de error.