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.

He estado intentado
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
y esto son los resultados
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
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
Mira esta opción y dime si puedes hacer algo
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.
D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.
es buena idea
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
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
Partimos de que estas usando
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
El autentico!!!
El original!!
Del que la gente habla mal!!!!
Visone selektah aka awuelo arrekinte
¿Para qué necesitas el
¿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
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
una de las cosas por la que necesito el Script
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.
D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.
hmmm
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
Paulo
RC shell scripts
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!
void hey(int x,int y)
{
if (x && y)
printf("http://libertadhack.blogspot.com/");
else
printf("http://libertadpunk.blogspot.com/");
}
Seguridad
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
No creo que si exista la forma sea una falla
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.
D@me un motivo, un sólo motivo por el cu@l no us@r GNU/Linux y te dire que est@s loco.
coincido
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 =)
problema similar
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
/etc/sudoers
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.
no =(
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
Vamos a un caso concreto,
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 /
Tambien vale: $ sudo su $ $
Tambien vale:
Saludos!
void hey(int x,int y)
{
if (x && y)
printf("http://libertadhack.blogspot.com/");
else
printf("http://libertadpunk.blogspot.com/");
}
DUDA REsuELTA
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 =)
Aclaro un poco...
Primero... para ejecutar un script se puede utilizar la ruta completa:
La "abreviada" (la virgulilla significa /home/usuario):
La otra forma de abreviar:
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:
Para ejecutar varios comandos...
Si tenemos activado root:
Si no tenemos activado root:
Cuando se trabaja entre comillas se puede seguir en comando en la linea siguiente. Ejemplo:
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:
"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.
meter scripts en sudoers
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.
Sticky bit
Hola.
El sticky bit se utiliza para hacer correr un script como root ¿Interesante...? :)
para darle ese bit a un script tienes que ejecutar:
y no necesitas introducir ninguna contraseña.
Para darle todos los permisos a todos tienes que poner:
Descripción:
Espero haberme explicado bién
TUX
MI BLOG
MIS COMUNIDADES:
UBUNTU-ES
pOrtal hacker
TARINGA!
sudo ./mi_script
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
(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.)
«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.