Foros del Web » Administración de Sistemas » Unix / Linux »

tengo que crear un script

Estas en el tema de tengo que crear un script en el foro de Unix / Linux en Foros del Web. hola amigos tengo dudas con respecto a como asiganar la password a un usuario dentro de un script: if [ $x -eq 2] then echo ...
  #1 (permalink)  
Antiguo 11/11/2006, 12:28
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
Pregunta tengo que crear un script

hola amigos
tengo dudas con respecto a como asiganar la password a un usuario dentro de un script:

if [ $x -eq 2]
then
echo -e "ingrese nombre de nuavo usuaro: \c"
read a
useradd $a
echo -e "ingrese cotraseña para usuario: \c"
read b
passwd $a
creo que eso no esta bien!!! alguien sabe que le falta??
estoy haciendo un menu con varias opciones mas adelante necesitare mas ayuda pero por ahora esta agradesco de antemano
__________________
Aprendiz linux, pero avanzando...
  #2 (permalink)  
Antiguo 11/11/2006, 15:35
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Por razones de seguridad, el comando passwd no lo podes ejecutar desde un script. Necesita si o si la interaccion con un usuario.
Una forma de poder correrlo es con expect, busca info en el foro que se ha hablado del tema, o en internet.
Saludos!
__________________
¡Volviendo a la programación!
  #3 (permalink)  
Antiguo 11/11/2006, 19:47
pablasso
Invitado
 
Mensajes: n/a
Puntos:
como te dijeron bajate el expect (yum install expect, aptitude install expect, etc) y despues ya puedes correr un script como este para cambiarlo

Código:
#!/bin/sh
# \
exec expect -f "$0" ${1+"$@"}
set password [lindex $argv 1]
spawn passwd [lindex $argv 0]
sleep 1
expect "assword:"
send "$password\r"
expect "assword:"
send "$password\r"
expect eof
funciona con 'nombredescript usuario password'
  #4 (permalink)  
Antiguo 12/11/2006, 21:23
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
gracias por las respuestas
pero les cuento que este script es para una tarea que debo entregar este miercoles y lo del root daria lo mismo por que se supone que lo ejecutaria solamente root, se trata de automatizar tareas en un script y deveria poderse... algo asi como lo que mostre al principio si no se puede avisenme porfa para no calentarme la cabez buscando como...

ademas alguien sabe donde puedo encontrar el manual de " case "porque cambie los if por case asi puedo meter if dentro de los case para poder hacer un else...
ya encotre la solucion¡¡¡¡
http://es.tldp.org/Tutoriales/NOVATO...-novato-9.html
jejeje
__________________
Aprendiz linux, pero avanzando...

Última edición por cnsey; 12/11/2006 a las 23:11
  #5 (permalink)  
Antiguo 12/11/2006, 23:41
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
hola amigos sigo con mi tarea
no puedo encontrar la forma en que haciendo la comparacionen el if encuentre si el usuario ya esta creado.. aqui el ejemplo:

echo -e "ingrese nombre de nuevo usuaro: \c";
read a;
adduser $a;
if [ $a -O ]; #que se pone aqui...???
then
echo "!! el usuario ya existe ¡¡";
else
echo "ingrese contraseña para usuario: ";

si alguien conoce la solucion se lo agradeceré...
__________________
Aprendiz linux, pero avanzando...
  #6 (permalink)  
Antiguo 13/11/2006, 00:49
pablasso
Invitado
 
Mensajes: n/a
Puntos:
asi como lo tienes al llamar a adduser el mismo te dira si el usuario existe o te pedira el pass en caso contrario

en la condicional -O es para respuestas sobre existencia de archivos, talvez deberias usar expect o $& para ver que respuesta te esta dando.. yo confiaria en solo ejecutar adduser
  #7 (permalink)  
Antiguo 13/11/2006, 09:54
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por pablasso Ver Mensaje
asi como lo tienes al llamar a adduser el mismo te dira si el usuario existe o te pedira el pass en caso contrario

en la condicional -O es para respuestas sobre existencia de archivos, talvez deberias usar expect o $& para ver que respuesta te esta dando.. yo confiaria en solo ejecutar adduser
tienes razon pero lo que pasa es que igual me dice que le cambie la password
al usuario ya creado.... mi intencion es que si el usuario existe que pare ahi y lo del $& no lo entendi bien a que se refieres? o donde pongo eso y para que sirve ( expect tengo que instalarlo aun).... gracias
__________________
Aprendiz linux, pero avanzando...

Última edición por cnsey; 13/11/2006 a las 10:00
  #8 (permalink)  
Antiguo 13/11/2006, 09:59
pablasso
Invitado
 
Mensajes: n/a
Puntos:
con el script que te puse primero le puedes cambiar el pass
  #9 (permalink)  
Antiguo 13/11/2006, 10:26
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por pablasso Ver Mensaje
con el script que te puse primero le puedes cambiar el pass
gracias pablasso
pero te cuento que mi nivel de programacion es super basico y no entiendo como funciona el script que me enviaste por eso buscaba una forma mas convencional... algo asi como una comparacion de algo que si existia no siguiera ejecutando el script... lo del passwd iba a dejarlo asi como esta osea que se ejecute normalmente, ponerlo despues del else...
__________________
Aprendiz linux, pero avanzando...
  #10 (permalink)  
Antiguo 13/11/2006, 11:50
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Código:
read a
cat /etc/passwd | grep "$a:" > /dev/null
if [ $? == "0" ]
then
        ... Aqui lo que harias si el usuario SI existe ...
else
        ... Aqui lo que harias si el usuario NO existe ...
fi
Cita:
Iniciado por cnsey
(...)pero te cuento que mi nivel de programacion es super basico(...)
No hay excusa. Hay que leer y estudiar.
Programación en BASH - COMO de introducción
__________________
¡Volviendo a la programación!
  #11 (permalink)  
Antiguo 13/11/2006, 22:52
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por AleSanchez Ver Mensaje
Código:
read a
cat /etc/passwd | grep "$a:" > /dev/null
if [ $? == "0" ]
then
        ... Aqui lo que harias si el usuario SI existe ...
else
        ... Aqui lo que harias si el usuario NO existe ...
fi


No hay excusa. Hay que leer y estudiar.
te aseguro que lo hare gracias
asi lo deje y funsiono:

comp=`grep "$a" /etc/passwd `
if [ -r $comp ];
se agradece
__________________
Aprendiz linux, pero avanzando...
  #12 (permalink)  
Antiguo 13/11/2006, 23:58
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
amigos he buscado informacion sobre el comando at
pero no encuentro por lo menos en google o no he sabido buscar
tengo nociones de como funciona pero tengo que agregarlo al mi script
alguien tiene informacion en español, intente con man pero ya ven las posibles respuestas estan en ingles y los traductores traducen como el forro....no me he quedado.... para que despues no digan que he sido flojo,
lo positivo es que leyendo lo que voy encontrando igual se aprende, pero no lo que busco.... jejejeje
espero su ayuda gracias...
__________________
Aprendiz linux, pero avanzando...

Última edición por cnsey; 14/11/2006 a las 07:50
  #13 (permalink)  
Antiguo 14/11/2006, 00:05
pablasso
Invitado
 
Mensajes: n/a
Puntos:
'man at'
  #14 (permalink)  
Antiguo 14/11/2006, 11:02
Avatar de cnsey  
Fecha de Ingreso: octubre-2005
Mensajes: 63
Antigüedad: 19 años, 2 meses
Puntos: 0
Cita:
Iniciado por pablasso Ver Mensaje
'man at'
otraves intente man at pero no entiendo ni J
por ejemplo: esto dice de la opcion c:

-c cats the jobs listed on the command line to standard output

y la traduccion es:

- gatos de c que los trabajos enumeraron en la línea de comando a la salida estándar

no se si alguien sabe de algo en español del comando at
no entiendo nada de esta traduccion ni de las otras
__________________
Aprendiz linux, pero avanzando...
  #15 (permalink)  
Antiguo 14/11/2006, 13:21
Avatar de AleSanchez
Colaborador
 
Fecha de Ingreso: septiembre-2004
Ubicación: Buenos Aires, Argentina
Mensajes: 3.692
Antigüedad: 20 años, 3 meses
Puntos: 47
Yo tengo instalado un paquete que se llama man-page-es entre las que esta la pagina del manual de at en español.
Quizas para tu distribucion exista algo igual...
__________________
¡Volviendo a la programación!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:00.