Como logueo a root mediante un scritp????

Imagen de mesias82
0 puntos

Necesito saber como puedo hacer que un script se loguee y ejecute comandos una vez convertido en root.

Es decir si mi passwd de root es hola123* me gustaria saber si mediante un script yo puedo loguearme y ejecutar comandos.

#!/bin/sh

su root ### me pide el passwd como pasar la contraseña sin tener que teclearla.

echo hola > prueba.txt
exit

Espero que me puedan ayudar.
Muchas gracias.

Imagen de Afsoon
+1
0
-1

pero no consiguo que me reconezca la contraseña si quiere te dejo el cuerpo y que alguien consiga que te lo reconozca mis conocimientos no llega a mas

#/bin/bash/

cd /home/$USER/prueb/
pass= cat passwd | grep 100
su
echo $pass >> su

y esto son los resultados

$ sh script\ de\ logueo.sh 
100
Contraseña: 

Ves que no llega reconocer a ver si consiguo algo y si alguien desde esto se consigue algo y si con mis conocimientos llego a algo

+1
0
-1

El éxito es para los que caen y se levanta de nuevo con mas fuerzas y no se rinden, y no para los que se rinden a la primera
Edisson invento la bombilla a la 1000 vez, nunca se rindió aunque la gente le dijera que nunca lo conseguiría
Lo imposible no ex

Imagen de mesias82
+1
0
-1

Con lo que tienes no sé si estamos por el camino correcto hice algunas mejoras a lo que escribes para ver si puedes ayudar partiendo de estos nuevos datos.

Pones esto
///// #/bin/bash/
/////
/////
///// pass= cat passwd | grep 100
///// su
///// echo $pass >> su

Mira mi idea:

#/bin/bash/

pass= cat /etc/shadow | grep root | cut -d ':' -f 2
su root
echo $pass < su

Bueno esto tampoco funciona pero me explico para ver si damos con la solución, puesto que me intereza pues me gustaria que un script pueda tomar poder de root y ejecutar algunas ordenes.

1ro. La busqueda para el passwd debe ser en /etc/shadow y no en passwd. (cat /etc/shadow)
2do. Saco el passwd para root pero esta encriptado no se si lo podamos utilizar para loguear con el comando su ( grep root | cut -d ':' -f 2 )
3ro. Pones (echo $pass >> su) cuando no debe ser salida sino entrada de lo que contiene la variable que creas con el valor de la contraseña de root. debe ser < en ves de >>.

Ojala puedas ayudarme con estos datos. Otra idea que tengo es buscando a ver si el comando su permite el logueo mediante alguna sintaxis de usuario:contraseña como es el caso de ftp que permite user:contraseña.

+1
0
-1

D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.

Imagen de Afsoon
+1
0
-1

Yo no lo estaba sacando de passwd ya que era un archivo que hice para probarlo, pero si en /etc/shadow esta encriptado no seria mas logico, busca como esta desencriptado( ya que existe muchas formas) o sino partiendo desde la contraseña ya sabiada en un archivo creado. Creo que no podras meterte con la contraseña encriptada ya que en ese archivo esta encriptada por motivos de seguridad.

Una cosa que se me acaba de ocurrir sabras que se puede quitar que te pida la pass, entonces porque no hacemos que editar el archivo y que no te pida la pass, entrar y volver a poner la pass y las acciones no? bueno cuando este con mi portatil intentare hacer algo pero va a ser dificil que reconozca un texto como pass pero se conseguira

+1
0
-1

El éxito es para los que caen y se levanta de nuevo con mas fuerzas y no se rinden, y no para los que se rinden a la primera
Edisson invento la bombilla a la 1000 vez, nunca se rindió aunque la gente le dijera que nunca lo conseguiría
Lo imposible no ex

Imagen de visone
+1
0
-1

Partimos de que estas usando Ubuntu, y tienes la cuenta de root activada, entonces el script se haria usando "sudo su" y despues los comandos a realizar

#/bin/bash/

sudo su
aptitude update

+1
0
-1

El autentico!!!
El original!!
Del que la gente habla mal!!!!
Visone selektah aka awuelo arrekinte

Imagen de Paulo_Jorge
+1
0
-1

¿Para qué necesitas el script? ¿Es realmente necesario que se loguee como root? ¿Por qué no lo haces tú?
La solución en si sería

su root
Insertas la contraseña
sh script

Eso sí, si no quieres tener que teclear la contraseña para ejecutar el script (que me parece que es lo que buscas), entones ya va más allá de mis conocimientos jeje

+1
0
-1

Chuck Norris sí sabe programar...

Imagen de mesias82
+1
0
-1

Por ejemplo pienso crear un CD Live para la Escuela donde trabajo, este Cd lo puedo crear mediante el remastersys.

Ahora como la imagen para quemar de Ubuntu se lleva casi un CD me gustaria quitarle algunos programas, añadir otros y hacer alguna configuraciones que se queden una vez creada la nueva imagen.

Para reducir el tiempo de instalación de mi nuevo sistema, no se debe llevar mucho la imagen en el disco (CD) asi que le quito programas que me serán necesarios a la hora de trabajar (OpenOffice, otros), para poder tenerlos (los programas) una vez concluida la instalación y teniendo en cuenta que el usuario no sabe como se pueden instalar en Ubuntu, me es necesario crear un script que se ejecute una vez iniciado el sistema y que instale los software que les faltan.

Pero para instalar debe ser super usuario y no hay modo que el script sepa que clave ni que usuario es el admin del sistema. Asi que debe convertirse en root para instalar.

Creo que este bien explicados algunos de mis motivos, no crean que lo hago para mal. jejeje

Saludos desde Cuba y gracias por las respuestas y alternativas que me puedan brindar.

+1
0
-1

D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.

Imagen de Paulo_Jorge
+1
0
-1

Ok, ya te entiendo. Aunque personalmente no sé como hacerlo... Incluso pienso que desde un script no se puede... pero aún soy algo novatillo jeje

script:
#!/bin/sh
echo 'hola123' | su root

$ sh script
su: debe ejecutarse desde un terminal

Paulo

+1
0
-1

Chuck Norris sí sabe programar...

Imagen de razaAztk
+1
0
-1

Pss una posible solución es que el script se inicie en el booteo del sistema. Investiga sobre scripts RC. Por ejemplo: http://www.skamasle.com/manual-linux-scritps-rc-shell-script-y-servicos-...

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}
Imagen de pedrux
+1
0
-1

Creo que si lo consigues, estás encontrando alguna falla de seguridad.

Una solución es ejecutar el script con permisos de root.
> sudo ./script

+1
0
-1
Imagen de mesias82
+1
0
-1

Mira el objetivo es pasarle la contraseña que yo conozco, pero que esta almacenada en una variable o en algún fichero que la ponga, sería evitar tener que teclear la contraseña root.

+1
0
-1

D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.

Imagen de Ezequiel Estevez
+1
0
-1

si creo que tiene razón si este script se diera a conocer a partir de este podrían surgir muchos virus ya que sin darle permiso de nada este se ejecutaría sin restricciones. no seria mas fácil que el script pidiera contraseña de root? creo que hasta para el mas nuevo en ubuntu puede con esa tarea .
yo estoy intentando averiguar como se realiza eso. mas abajo explico mi problema =)

+1
0
-1
Imagen de Ezequiel Estevez
+1
0
-1

yo tnego un conflicto similar.. quiero realizar un script que modifique algo en un archivo .. pero este no lo hace x que necesita ser root( por los privilegios del archivo) para modificarlo.
entonces mi objetivo es que mi script pida contraseña de root para ejecutar los comandos que le continúan
no quiero logiarme como root desde consola y luego ejecutar el script sino que todo esto lo aga el mismo script. ya que el script ke realizo es para novatos y no quiero que tecleen nada en consola, solo que pongan las pass cuando se las pide

espero que me puedan ayudar... aquí dejo mi script

#!/bin/sh
su echo "ALL ALL=NOPASSWD: /usr/bin/theftdeterrent.sh" >> /etc/sudoers

+1
0
-1
Imagen de EnriqueK
+1
0
-1

Una de las vrntajas que tiene sudo es la de facilitar la ejecucuón de scripts, por ejemplo tienes el siguiente script
#!/bin/sh
sudo apt-get update
sudo apt-get upgrade
sudo apt-get autoclean
Al ejecutarlo como usuario te va a pedir contraseña, para que no te la pida , ejecuta antes por única vez el siguiente comando
sudo -i
echo 'usuario ALL=NOPASSWD: /usr/bin/apt-get' >> /etc/sudoers
y así con todod los comandos que no quieres que pida contraseñm puedes crearte un script con todos ellos y lo ejecutas una sola vez para cada usuario que lo vaya a requerir.

+1
0
-1
Imagen de Ezequiel Estevez
+1
0
-1

intente con el comando que me dijiste pero (sudo -i) .. me pide la pass y no ejecuta el comando que sigue después..

echo 'ALL ALL=NOPASSWD: /usr/bin/apt-get' >> /etc/sudoers

lo puse tal cual como me lo tipiaste

#!/bin/sh
sudo -i
echo 'ALL ALL=NOPASSWD: /usr/bin/apt-get' >> /etc/sudoers

+1
0
-1
Imagen de EnriqueK
+1
0
-1

Vamos a un caso concreto, supongamos que lo quieres hacer para que usuario pepe pueda ejecutar sudo apg-get sudo aptitude y sudo gedit sin que te pida contraseña, el script sería +
#!/bin/sh
echo 'pepe ALL=NOPASSWD: /usr/bin/aptitude' >> /etc/sudoers
echo 'pepe ALL=NOPASSWD: /usr/bin/apt-get' >> /etc/sudoers
echo 'pepe ALL=NOPASSWD: /usr/bin/gedit' >> /etc/sudoers

Para ejecutar el script como root, abre un terminal normal pones
sudo -i
Pulsa Enter e introduce la contraseña
sh
dejas un espacio
arrastra el scropt a este terminal --->Enter y listo, recuerda que esto lo debes hacer una sola vez para cada usuario
Si quieres hacerlo para otras funciones debes averiguar la ruta de los ejecutables, recomiendo entrar a Lugares -->Buscar archivos , esta búsqueda la debes hacer en el sistema de archivos del sistema o partición /

+1
0
-1
Imagen de razaAztk
+1
0
-1

Tambien vale:

$ sudo su
$
$ #otros comandos
$
$ exit

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}
Imagen de Ezequiel Estevez
+1
0
-1

me mate el finde entero intentando correr el script para adarme cuenta ,junto a un colega, lo muy mañoso que funciona el script

existe un comando gksudo que te permite realizar acciones como root (u otro usuario si se desea). pero este no funciona a la par de otra linea ej:

/usr/bin/gksudo -u root echo "ALL ALL=NOPASSWD: /usr/bin/theftdeterrent.sh" >> /etc/sudoers

lo que esta en negrita es la dirección del comando gksudo, en realidad no es necesario pero por las dudas lo agregamos.

bueno al ejecutar el comando anterior solo corría la función gksudo pero no continuaba con el programa.. no agregaba la linea en sudoers

por lo que se nos ocurrió crear 2 archivos, uno que le de toodos los privilegios de root a el otro archivo:

el primero le da privilegios de root al otro de la siguiente manera

#!/bin/bash
/usr/bin/gksudo ./otro.sh
exit

y el segundo archivo (otro.sh) contiene el comando que quiero ejecutar

#!/bin/bash
echo "administrador ALL=NOPASSWD: /usr/bin/theftdeterrent.sh" >> /etc/sudoers
exit

bueno y esta era toda la ciencia de ejecutar un comando con privilegios de root en un script. personalmente creo que es muy mañoso o no sera la forma mas simple pero funciona perfectamente

MUCHAS GRACIAS A TODOS LOS QUE AYUDARONN =)

+1
0
-1
Imagen de PabliNet
+1
0
-1

Primero... para ejecutar un script se puede utilizar la ruta completa:

$ /home/usario/script-sh

La "abreviada" (la virgulilla significa /home/usuario):

$ ~/script-sh

La otra forma de abreviar:

$ $HOME/script-sh

Los comandos gksu, gksudo, kdesu y kdesudo son sólo para ejecutar aplicaciones GUIs como root o superusuario. Esta mal ejecutar sudo gedit hay que hacer:

$ gksudo gedit

Para ejecutar varios comandos...
Si tenemos activado root:

$ su -c 'comando1; comando2'

Si no tenemos activado root:

$ sudo su -c 'comando1; comando2'

Cuando se trabaja entre comillas se puede seguir en comando en la linea siguiente. Ejemplo:

$ su -c 'comando1;
>comando2'

También se puede configurar a Ubuntu de tal manera que nunca pida la contraseña.

A la máquina se le puede preguntar si se es superusuario/root o usuario normal:

#! /bin/sh
if [ "`whoami`" != "root" ];
then
echo "Por favor, ejecuta el script como superusuario (sudo)"
exit 1
fi
+1
0
-1

"No hay nada más hermoso que hacer algo por alguien,
y no hay nada más tonto que no hacer nada por nadie".
León Gieco®

Veni veni canta conmigo
que un amigo vas a encontrar,
que de la mano de Google
tus problemas vas a solucionar.

Imagen de hashashin
+1
0
-1

meter scripts en sudoers accesibles como usuario no es muy buena idea, asegurate que sólo root tiene permisos de escritura en ese script, alguien podria modificar el script y poner "/bin/bash" y tendria una bonita consola de root. Otra manera sin usar sudo aunque tb un poco insegura seria:
chown root tuscript.sh
chmod 4755 tuscript.sh
Cambias el dueño del archivo a root y activas el bit setuid (el 4) por lo que el archivo se ejecuta con los permisos del dueño (root) independientemente de quien lo ejecute, obviamente se aplica lo mismo que antes sólo root debe tener permiso para escribir ahí.

Salud.

+1
0
-1
Imagen de teknohelio
+1
0
-1

Hola.

El sticky bit se utiliza para hacer correr un script como root ¿Interesante...? :)

para darle ese bit a un script tienes que ejecutar:

chmod +s miscript.sh

y no necesitas introducir ninguna contraseña.

Para darle todos los permisos a todos tienes que poner:

chmod +rwxsrwxsrwxs miscript.sh

Descripción:

  • Propietario: rwxs: read write execution sticky
  • Grupo: rwxs: read write execution sticky
  • Otros: rwxs: read write execution sticky

Espero haberme explicado bién

TUX

+1
0
-1

MI BLOG

MIS COMUNIDADES:

UBUNTU-ES
pOrtal hacker
TARINGA!

Imagen de cousteau
+1
0
-1

Yo lo que haría sería hacer el script dando por hecho que ya eres root, y lo ejecutaría con sudo ./mi_script
Si quieres que el script te lo pregunte aunque no lo ejecutes con sudo (no me parece buena idea; mejor directamente lanzarlo con sudo) puedes usar algo como

sudo sh -c 'comando; otro_comando; mas comandos con parametros; etc'

(si tu idea es hacerlo ejecutable mediante doble-click, o si vas a usar programas gráficos, entonces mejor gksudo. Lo que no me parece buena idea es tener tu contraseña escrita directamente en el archivo.)

+1
0
-1

«E: dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem» significa que dpkg se ha interrumpido y que tienes que ejecutar "sudo dpkg --configure -a" para corregir el problema.