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

ejecutar una tarea como root dentro de un script en bash---

Estas en el tema de ejecutar una tarea como root dentro de un script en bash--- en el foro de Unix / Linux en Foros del Web. Hola gente estoy tratando de hacer un pequeño script para poder arrancar y detener procesos de root mas facil mediante un script en bash Especificamente ...
  #1 (permalink)  
Antiguo 10/04/2008, 16:36
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
ejecutar una tarea como root dentro de un script en bash---

Hola gente estoy tratando de hacer un pequeño script para poder arrancar y detener procesos de root mas facil mediante un script en bash
Especificamente es para Xampp (estoy haciendo mediante entradas arrancar, detener apache, mysql, ambos, etc etc)
Hats ahora esta tomando forma, eso creo, pero me quede bloqueado aca

Por ejem recibo una variable que es el pass de root, como tendria que armar el comando para que ejecute el script como root (es decir dentro del script), no quiero ejecutar el script como root, que dificil explicar:
a ver mi script es

ejecutar.sh ya le di permisos de ejecucion

dentro del script tengo esto

Código:
#!/bin/bash
echo "ingrese su pass de root"
read PASS
echo "Elija su opcion 1.apache-php 2.Mysql 3.all"
read DATO1
#echo "Hola $DATO1"
if [ $DATO1 = a ]; then
#aca quiero que me ejecute como root /opt/lampp/lampp start --- Como lo hago??? es posible???
elif [ $DATO1 = b ]; then
echo "dato b"
fi
Saludos, sera posible lo que quiero hacer o es que debo ejecutar el script como root...
__________________
Drupal Argentina
  #2 (permalink)  
Antiguo 10/04/2008, 16:56
Avatar de -Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 19 años, 10 meses
Puntos: 76
Re: ejecutar una tarea como root dentro de un script en bash---

Creo recordar que alguien preguntó algo parecido hace algún tiempo. Dale una segunda oportunidad al buscador.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable
  #3 (permalink)  
Antiguo 10/04/2008, 19:18
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Re: ejecutar una tarea como root dentro de un script en bash---

Ok , creeme que busque pero no encontre nada, en fin era solo para curiosear un rato al fin logre hacerlo algo rudimentario pero funciona. (y me ahorra escribir muchas lineas) Ahora voy por algo mas grafico...
Saludos
__________________
Drupal Argentina
  #4 (permalink)  
Antiguo 10/04/2008, 21:29
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 20 años, 5 meses
Puntos: 93
Re: ejecutar una tarea como root dentro de un script en bash---

¿no sería más sencillo utilizar sudo?
Código:
#!/bin/bash
echo "Elija su opcion 1.apache-php 2.Mysql 3.all 4.stop"
read DATO1
if [ $DATO1 = "1" ]; then
sudo /opt/lampp/lampp startapache
elif [ $DATO1 = "2" ]; then
sudo /opt/lampp/lampp startmysql
elif [ $DATO1 = "3" ]; then
sudo /opt/lampp/lampp start
elif [ $DATO1 = "4" ]; then
sudo /opt/lampp/lampp stop
fi
Una vez que termine de ejcutarse el script tu estarás como usuario sin privilegios, a menos que ejecutes otra orden anteponiéndole "sudo", en cuyo caso ya no tendrás que ingresar de nuevo la contraseña.

Saludos
__________________
Antes de hacer rabietas infórmate: Linux != Windows
  #5 (permalink)  
Antiguo 10/04/2008, 21:49
Avatar de NUCKLEAR
Moderador radioactivo
 
Fecha de Ingreso: octubre-2005
Ubicación: Cordoba-Argentina
Mensajes: 5.688
Antigüedad: 18 años, 6 meses
Puntos: 890
Re: ejecutar una tarea como root dentro de un script en bash---

Efectivamente mi estimado es asi como lo tengo pero yo lo que quiero es para que cada vez que tenga que hacer alguna tarea como root me pida la contraseña. Por que por ejemplo no en todas las distribuciones se tiene permitido por defecto usar sudo sin solicitar la contraseña, se que se puede cambiar esto pero lo que quiero es usarlo en un terminal donde por cada tarea como root pida la contraseña, y no lo haga automaticamente(otra vez no se si me explique bien...)
Saludos

PD: se que me van a decir que cambie entonces los permisos de sudoers pero no es lo que quiero, lo que quiero es saber como hacer que un script que no es ejecutado como root me solicite la contraseña de root antes de ejecutar una tarea o un comando en este caso /opt/lampp/lampp start
__________________
Drupal Argentina
  #6 (permalink)  
Antiguo 11/04/2008, 10:06
Avatar de 00TUX  
Fecha de Ingreso: abril-2008
Ubicación: Tijuana
Mensajes: 57
Antigüedad: 16 años, 1 mes
Puntos: 1
Re: ejecutar una tarea como root dentro de un script en bash---

Te recomiendo usar sudo como arthpix sugiere ya que de este modo te pedira la contrasenia automaticamente y no aparecera en la pantalla como lo hace read.

Sugiero usar case para ordernar el cofigo de mejor manera:

Código:
case opcion in
    1)
       sudo /etc/init.d/apache2 start
       ;;
     2)
       sudo /etc/init.d/mysqld start
       ;;
     3)
       sudo /etc/init.d/ mysqld stop && sudo /etc/init.d/apache2 stop
       ;;
      *)
         echo "No reconozco dicha opcion"
         echo
         ;;
esac
Buen trabajo arthpix :)
  #7 (permalink)  
Antiguo 11/04/2008, 10:56
Avatar de arthpix  
Fecha de Ingreso: diciembre-2003
Ubicación: Cancún
Mensajes: 2.340
Antigüedad: 20 años, 5 meses
Puntos: 93
Re: ejecutar una tarea como root dentro de un script en bash---

Rectifico, no era tan dificil.
Código:
#!/bin/bash
echo "Elija su opcion 1.apache-php 2.Mysql 3.all 4.stop"
read DATO1
if [ $DATO1 = "1" ]; then
su - root -c "/opt/lampp/lampp startapache"
elif [ $DATO1 = "2" ]; then
su - root -c "/opt/lampp/lampp startmysql"
elif [ $DATO1 = "3" ]; then
su - root -c "/opt/lampp/lampp start"
elif [ $DATO1 = "4" ]; then
su - root -c "/opt/lampp/lampp stop"
fi
Tomado de aqui y gracias a estos señores.

De hecho, una vez con el script me parece mejor idea este por que no se queda la sesión de sudo abierta por 10 minutos despues de ejecutar el script.

Gracias por tu idea NUCKLEAR.
00TUX, el trabajo fue de los arriba mencionados


Saludos
__________________
Antes de hacer rabietas infórmate: Linux != Windows
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 20:57.