elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  scrip de perl
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: scrip de perl  (Leído 7,481 veces)
stres

Desconectado Desconectado

Mensajes: 6


Ver Perfil
scrip de perl
« en: 26 Mayo 2004, 07:22 am »

Estoy empezando con perl y me piden el siguiente ejercicio, tengo que escribir un scrip de perl pensado para administrador, que produzca el siguiente resultado:

usuario       (UID)              directorio home              espacio            seguridad
------------------------------------------------------------------------------------------------
alberto (464)                           /home/alberto             845495K 

el apartado seguridad estará en blanco, salvo si se da alguno de estos casos:

el user id es cero (mensaje: UID=0)
la información sobre password en /etc/passwd es "!" o "*" (mensaje:PASSWD)

A ver si me podeis orientar.


En línea

_XuRRo_

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: scrip de perl
« Respuesta #1 en: 26 Mayo 2004, 10:26 am »

Pues no parece complicado,mira:  yo llamaria a otros programas tipicos de linux, como 'whois' ,  'du'  y trabajaria con el fichero /etc/passwd. Con esas tres cosas ya puedes extraer toda la informacion q necesitas mostrar.

t doy mas pistas ;) utilizaria 'whoami' para saber q usuario soy, buscaria la linea correspondiente en el /etc/passw. De ahi saco el directorio home, el uid, y poco mas.... ves por donde va la cosa?? :)

salu2




« Última modificación: 29 Mayo 2004, 21:47 pm por _XuRRo_ » En línea

stres

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Esto es lo que estoy haciendo
« Respuesta #2 en: 27 Mayo 2004, 06:49 am »


De momento leo el /etc/passwd
#!/usr/bin/perl

$file = "etc/passwd"; #abro el fichero
open (INFO, $file); # lo abre
@lines = <INFO>; # lo lee en un vector
close (INFO); #cierra el fichero
print @lines; #imprime el vector

Esto es lo que llevo echo ahora el problema que me surge es como ponerlo con el formato que indique en el primer post creo que hay que utilizar el split y el espacio el du.

voy bien encaminado.

Un saludo de stres
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: scrip de perl
« Respuesta #3 en: 27 Mayo 2004, 09:53 am »

bueno pues para sacarlo en el formato ese, te pongo un ejemplo cutre pero puede que te de alguna idea:
Código:
foreach $a (@lines) {
 @datos=split(":",$a);
 print "$datos[0] $datos[2] $datos[5]\n";
}

eso te lo muestra en formato usuario/uid/home.
En línea

stres

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: scrip de perl
« Respuesta #4 en: 28 Mayo 2004, 06:00 am »

Un saludo Mr. Potato.
Me has dato muy buenas pistas.
Ahora lo que no logro conseguir es si en el camp User ide es 0 quiero que me salga el mensaje UID=0
Y en el campo passwd es "!" o "*" quiero que me salga mesaje=PASSWD.

A ver si me vuelver a orientar.

Un saludo.
Stres
En línea

stres

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: scrip de perl
« Respuesta #5 en: 28 Mayo 2004, 06:02 am »

Por cierto se podría poner un campo para que me saliera tambien el espacio que utiliza cada ususario, creo que con el comando du podría hacerlo

Gracias
En línea

byebye


Desconectado Desconectado

Mensajes: 5.093



Ver Perfil
Re: scrip de perl
« Respuesta #6 en: 28 Mayo 2004, 06:43 am »

solo tienes que poner algun if. en $a en cada vuelta tienes una linea, puedes usar otro split para pillar el campo de la linea que te interese y compararlo con el que necesitas, si es igual haces una cosa u otra.

por ejemplo haces otro split a cada linea con ":" y miras en q indice se te queda el que te interesa.
En línea

stres

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: scrip de perl
« Respuesta #7 en: 28 Mayo 2004, 06:56 am »

Como podría añadir el campo espacio utilizado por el usuario, sería con el comando du. Y por que me repite dos veces la palabra PASSWD cuano hago el condicional if con el campo de passwd
#!/usr/bin/perl
format STDOUT_TOP =
                SALIDA FORMATEADA
.
format STDOUT =
Usuario              UID       DIRECTORIO HOME      SEGURIDAD
-------------------------------------------------------------
@<<<<<<<<<<<<<<<<<@|||||||||||@|||||||||||||||@>>>>>>>>>>>>>
$datos[0]                           $datos[2]     $datos[5]       $datos[1]
.
    write;
$FILE = "/etc/passwd";
open(INFO,$FILE);
@lines= <INFO>;
close (INFO);
foreach $a (@lines)
    {
    @datos=split(":",$a);
   if ($datos[2] <=0)
{
    print $datos[2]= "UID=0\t"
 }
if ($datos[1]= x)
 {
    print $datos[1]= "PASSWD\t"
}
    print "$datos[0]\t $datos[2]\t $datos[5]\t $datos[1]\n";
}
« Última modificación: 28 Mayo 2004, 09:02 am por stres » En línea

_XuRRo_

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: scrip de perl
« Respuesta #8 en: 28 Mayo 2004, 19:38 pm »

Para ejecutar un prorgama externo a perl,se pude utilizar  system( " lo q sea" ) o la comilla invertida y ejecuta un comando cualquiera q le indiques,  pero no se puede recojer lo q muestra el comando para utilizarlo dentro de mi programa en perl. La forma para hacer eso es la siguiente:


Código:
open(USUARIO,"whoami|"); #redireccionamos la salida del comando a un pipe
$usuario =<USUARIO>; #leemos del pipe
close(USUARIO);
chomp($usuario);

Con este codigo obtenemos en la variable $usuario lo q ha devuelto el comando 'whoami' ,  de la misma forma se puede utilizar con cualquier comando, como du por ejemplo. ;)
 Haz un "man du" en la consola y mira como funciona. Para pasar parametros al comando:

open(USUARIO,"du $param1 $param2 |"); # ejemplo


salu2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿Scrip que funcionen en Habbo.es 100%?
Scripting
Josean94 2 3,719 Último mensaje 4 Julio 2011, 13:56 pm
por Josean94
Scrip de hora
Desarrollo Web
Caster 1 1,834 Último mensaje 5 Enero 2012, 10:13 am
por ‭lipman
error con scrip vbs
Scripting
**Aincrad** 1 2,010 Último mensaje 27 Julio 2017, 23:00 pm
por tincopasan
quieroace scrip
Scripting
Juan_98 2 1,770 Último mensaje 13 Octubre 2018, 04:43 am
por Tino
Scrip / Hack RaiderZ
Scripting
agamenom3 1 3,052 Último mensaje 7 Mayo 2020, 18:37 pm
por assw1208
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines