Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Desarrollo » Programación


Nuevo tema Responder al tema
 [ 4 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Nov 19, 2010 2:53 am
Mensajes: 4

Nota Publicado: Vie Nov 19, 2010 3:00 am 
Arriba  
Hola chicos,

Mi jefe me ha pedido que haga 2 scripts los cuales muestren todos los usuarios que pertenecen al sistema con su grupo, ordenados. A continuacion os adjunto la informacion completa


Se debe mostrar la lista de usuarios con su nombre grupo al lado ordenado por usuario:

usuario:grupo

El segundo debe mostrar la lista de grupos con todos los usuarios de cada grupo en el siguiente formato:

grupo:usuario1,usuario2,..,usuarioN


el primero lo he hecho ultilizando users y groups

#!/bin/bash

echo "Aqui tienes al usuario con su grupo ordenados"

while read linea;do

groups $(cut -f1 -d: | sort );
done < /etc/passwd


Bien, mi problema es el siguiente:

Quiere que lo haga sin utilizar users ni groups. Únicamente manejando los ficheros /etc/passwd y /etc/groups.
:cry:


Última edición por akodo el Jue Nov 25, 2010 3:39 pm, editado 2 veces en total
Título editado por ser incorrecto

 Perfil Email  

Desconectado
Moderador
Moderador
Avatar de Usuario

Registrado: Mié Nov 28, 2007 12:00 am
Mensajes: 1361
Ubicación: En la X del explorer (pulse para llamar)

Nota Publicado: Vie Nov 19, 2010 4:32 am 
Arriba  
Para el primero, lo que tienes que hacer es leer el archivo /etc/passwd, ordenarlo y cortar los campos. Para que te hagas una idea, es algo como (a falta de ajustar opciones de los comandos):
Código:
cat /etc/passwd | sort | cut -f1,4 -d:

Si lo que necesitas es el nombre del grupo, entonces es más problemático.

Para el segundo se hace de una manera similar pero con el archivo /etc/groups.

_________________
Descargue el gestor de mp3 "Music Manager" -> (mmlf)
Última versión del gestor "Music Manager" -> (jmmm)

 Perfil  

Desconectado
Forista Ancestral
Forista Ancestral
Avatar de Usuario

Registrado: Mié Abr 11, 2007 11:00 pm
Mensajes: 8550
Ubicación: tras la pantalla (...)

Nota Publicado: Vie Nov 19, 2010 6:38 am 
Arriba  
akodo escribió:
Para el primero, lo que tienes que hacer es leer el archivo /etc/passwd, ordenarlo y cortar los campos. Para que te hagas una idea, es algo como (a falta de ajustar opciones de los comandos):
Código:
cat /etc/passwd | sort | cut -f1,4 -d:

Si lo que necesitas es el nombre del grupo, entonces es más problemático.

Para el segundo se hace de una manera similar pero con el archivo /etc/groups.


y para filtrar los archivos, te recomiendo tirar de awk, y cambiar el IFS a ":", ya que es el caracter por el que estan separados los campos en ambos ficheros

(si... podria dartelo con mas detalle, pero yo creo que con eso tienes que ser capaz de encontrar lo que buscas.... no obstante, si no encuentras nada, dinos dond te has quedado y te busco algo mas concreto. :) )

_________________
#446716

--Not me, guys. I read the Bash man page each day like a Jehovah's Witness reads the Bible. No wait, the Bash man page IS the bible. Excuse me...
(from comp.os.linux.misc)
[ DNFD ] - [ F4A ] - [ dotfiles ]

 Perfil Email WWW  

Desconectado
Forista Nuevo
Forista Nuevo

Registrado: Vie Nov 19, 2010 2:53 am
Mensajes: 4

Nota Publicado: Jue Nov 25, 2010 10:22 am 
Arriba  
Gracias por vuestra ayuda chavales. Ya encontre una solución aquí os la dejo por si a alguien le sirve:


#!/bin/bash

cat /etc/passwd | cut -d: -f 1 > usuario

for i in $(cat usuario);
do
usuario=$i;
gid=`grep "^$i:" /etc/passwd | cut -f 4 -d:`;
grupo=`grep ":"$gid":" /etc/group | cut -f 1 -d:`;
echo $usuario":"$grupo >> usugru;

done
sort -k 1 usugru
rm usugru
rm usuario

 Perfil Email  
Mostrar mensajes previos:  Ordenar por  
 [ 4 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 7 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO