visualizacion usando programa para librerias graficos graficar filtrar estadisticos ejercicios datos curso con como ciencia cargar analisis python scripting user sysadmin

usando - librerias de python para ciencia de datos



Script Python para listar usuarios y grupos (5)

el módulo grp es tu amigo Mire grp.getgrall() para obtener una lista de todos los grupos y sus miembros.

Ejemplo EDIT :

import grp groups = grp.getgrall() for group in groups: for user in group[3]: print user, group[0]

Estoy intentando codificar una secuencia de comandos que emite cada usuario y su grupo en su propia línea así:

user1 group1 user2 group1 user3 group2 ... user10 group6

etc.

Estoy escribiendo un script en python para esto, pero me preguntaba cómo SO podría hacer esto.

ps. Dale un golpe en cualquier idioma, pero prefiero Python.

EDITAR: estoy trabajando en Linux. Ubuntu 8.10 o CentOS =)


sh / bash:

getent passwd | cut -f1 -d: | while read name; do echo -n "$name " ; groups $name ; done


Para * nix, tienes los módulos pwd y grp . Usted itera a través de pwd.getpwall() para obtener todos los usuarios. grp.getgrgid(gid) nombres de grupo con grp.getgrgid(gid) .

import pwd, grp for p in pwd.getpwall(): print p[0], grp.getgrgid(p[3])[0]


Alimentado por os.popen o lo que sea ....

"grupos de hombres"

GRUPOS (1) Comandos de usuario GRUPOS (1)

Grupos NAME: imprime los grupos en los que se encuentra un usuario

Grupos SINOPSIS [OPCIÓN] ... [NOMBRE DE USUARIO] ...

DESCRIPCIÓN Imprima membresías de grupos para cada USERNAME o, si no se especifica USERNAME, para el proceso actual (que puede diferir si la base de datos de grupos ha cambiado).

....


Creo que este código satisface sus necesidades, solo utiliza las funciones básicas del intérprete de Python, sin la necesidad de utilizar módulos adicionales:

una función simple que es capaz de manejar la estructura de cualquiera de estos archivos (/ etc / passwd y / etc / group).

Aquí está el código:

#!/usr/bin/python data = [] def iterator(f): for line in f.readlines(): data.append(line.split(":")[0]) data.sort(); for item in data: print "- " + item , with open("/etc/group","r") as f: print "/n* GROUPS *" iterator(f); print with open("/etc/passwd","r") as f: print "/n* USERS *" iterator(f);