Puedes usar awk
para esta tarea:
awk -F: '$3 >= 1000' /etc/passwd
Esto dividirá el /etc/passwd
archivo por dos puntos, entonces si el campo 3 (ID de usuario) es mayor o igual a 1000, imprimirá el /etc/passwd
completo grabar.
Si desea obtener solo el nombre de usuario de esta lista, entonces:
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
Donde $1 es el primer campo de etc/passwd
cuál es el nombre de usuario.
Suponiendo que el sistema reconoce solo a los usuarios locales (es decir, los registrados en /etc/passwd
, a diferencia de cualquier autenticado a través de un servicio remoto como LDAP, NIS o Winbind), puede usar grep
, sed
o awk
para extraer los datos de /etc/passwd
. awk
es el más flexible de ellos, pero ¿qué tal una solución con sed
:
sed -n '/^\([^:]\+\):[^:]\+:[1-9][0-9]\{3\}/ { s/:.*//; p }' /etc/passwd
Debe obtener todos los usuarios cuyo gid
es mayor o igual a 1000. Usa este comando para eso:
awk -F: '($3>=1000)&&($1!="nobody"){print $1}' /etc/passwd
Si desea usuarios del sistema (gid<1000) será:
awk -F: '($3<1000){print $1}' /etc/passwd