Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: almorace en 5 Junio 2016, 21:36 pm



Título: script linux mostrar usuarios
Publicado por: almorace en 5 Junio 2016, 21:36 pm
hola, alguien me podria ayudar con este script

Para todos los usuarios con UID>=1000 crea una entrada en formato LDIF como la  del siguiente ejemplo:

dn: uid=USUARIO,ou=ejemplo,dc=ejemplo,dc=org
uid: USUARIO
objectClass: top
objectClass: posixAccount
objectClass: person
objectClass: inetOrgPerson
loginShell: SHELL
uidNumber: UID
gidNumber: GID
sn: APELLIDOS
givenName: NOMBRE
cn: NOMBRE APELLIDOS
mail: USUARIO@ejemplo.org
l: lugar
homeDirectory: HOME

donde los parámetros que están en mayúsculas se deben extraer del fichero /etc/passwd


NECESITO CREAR EL FICHERO LDIF, CON TODO ESTO, COMO PODRIA REDIRECCIONARLO TODO AL FICHERO, Y POR DONDE EMPEZARIA A REALIZAR EL SCRIPT

GRACIAS DE ANTE MANO


Título: Re: script linux mostrar usuarios
Publicado por: almorace en 5 Junio 2016, 22:00 pm
perdon no he sido muy claro, esto es lo que llevo realizado y quiero que me lo cree en el fichero .ldif, pero me da fallos, alguna consejo y/o ayuda?




#!/bin/bash

   cat /etc/passwd | \
   while IFS=":" read usu password uid gid nom directorio bash
   do
   if [ $uid -ge 1000 ];then
      archivo="usuarios.ldif"
      echo -e "\n dn: uid="$usu",ou=ejemplo,dc=ejemplo,dc=org">>$archivo
      echo "uid:" $usu >> $archivo
      echo "objectClass: top" >> $archivo
      echo "objectClass: posixAccount" >> $archivo
      echo "objectClass: person" >> $archivo
      echo "objectClass: inetOrgPerson" >> $archivo

      contraseña=$(sudo cat /etc/shadow | awk /$usu/)
      echo "loginShell:" $contraseña  >> $archivo
      echo "uidNumber:" $uid >> $archivo
      echo "gidNumber:" $gid >> $archivo
      read -p "¿Apellido?" apellido
      echo "sn: $apellido" >> $archivo
      read -p "¿Nombre?" nombre
      echo "givenName: $nombre" >> $archivo
      echo "cn:" $nombre $apellido >> $archivo
      echo "mail:" $usu"@example.org" >> $archivo
      echo "l: lugar" >> $archivo
      echo -e "homeDirectory:\n" $directorio >> $archivo
      echo "Entrada creada"
      ls
   else
      echo "usuario con UID menor 1000"
      break
   fi
   done