* Imagenes de instalación de las versiones estables para Mageia y OpenMandriva.

OpenMandriva: Mageia (Mageia 9) 20/Agosto/2023 - Anuncio, Descargas.

Blogdrake recomienda descargar las imágenes de instalación (iso) vía torrent para evitar corrupción de datos, aprovechar mejor su ancho de banda y mejorar la difusión de las distribuciones.

¿Como hacer que un script pida la contraseña de root?

Buenos dias

esta pregunta me la habia resuelto google dos años atras pero ahora el maldito google no me tira de nuevo  a aquella milagrosa pagina donde estaba esa maravillosa respuesta.

el plan es el siguente tengo un scrip que compia una aplicacion y sus  archivos a /opt les cambia los permisos a 1777  crea un scrip en /usr/bin para ejecutar la aplicacion en cuestion  y crea la correspondiente entrada en /usr/share/aplications/programita.desktop para tener icono en el menu

le doy doble click como usuario para que se ejecute el scrip, y el scrip me despliega la ventanita pidiendo contraseña para poder copiar los archivos 

ayuda muchas gracias.

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.


Gravatar de katnatek

# 116525 Y por que simplemente no lo

Y por que simplemente no lo ejecutas como root?

Opciones:

sudo
consolehelper
su - -c aplicación



Gravatar de onitenchi

# 116535 que tal un ejemplo

Digamos que tengo un scrip suM.sh que dice

___________________________________________

#!/bin/bash
ans=`kdialog --radiolist "Elige:" 0 "correr juego" on 1 "instalar" on 2 "Desinstalar" on 3 "no hacer nada" on 4 "cuatro"`
#kdialog --msgbox "$ans"

run()        {
kdialog --msgbox "$ans"
        }

instalar()    {
mkdir -p /opt/suM
        }

desinstalar()    {
rm -rfv /opt/suM
        }

if   [ $ans == 0 ]; then
echo "ejecutar" 
run
elif [ $ans == 1 ]; then
echo "instalar" 
instalar
elif [ $ans == 2 ]; then
echo "desinstalar" 
desinstalar
else
exit
fi

___________________________________________

se guarda y se le dan permisos de ejecucion para que corra con solo darle doble click al archivo

pero las funciones de instalar y desistalar requieren privilegios de root, entonces nesesito que el scrip haga "su"

esa es la parte que no funciona.

Encotre el viejo scrip entre las cosas del disco viejo 

___________________________________________

#!/bin/bash

[ "$UID" != "0" ] && kdesudo -u root -s -c "$0"
[ "$UID" != "0" ] && exit

echo "$user"

exit

___________________________________________

si el scrip no se ejecuta como root lo termina con exit y vuelve y lo lanza pidiendo graficamente contraseña cde root,

no me funciona en esta mandriva por falta de kdesudo

ya intente haciendo

instalar()    {
mkdir -p /opt/suM
        }

instalar()    {
su -c 'mkdir -p /opt/suM'
        }

instalar()    {
su -c root 'mkdir -p /opt/suM'
        }

instalar()    {

su -c root 'mkdir -p /opt/suM'

        }

ninguno de los casos funciono por una u otra razon

bueno agradesco cualquier ayuda que puedan proporcionarme



Gravatar de Annubis

# 116536 Kdesu

Puedes usar kdesu, que vale para lo mismo.



Gravatar de katnatek

# 116543 Por partes

Este no tengo claro por que no te funciona

su -c 'mkdir -p /opt/suM'

Este esta mal la sintaxis

su -c root 'mkdir -p /opt/suM'

Debe ser

su - -c 'mkdir -p /opt/suM'

ó

su -l root -c 'mkdir -p /opt/suM'

Puedes obtener más de información de la ejecución de tu script con

bash -x script-a-probar


Gravatar de onitenchi

# 116550 pedir contraseña desde un scrip y logearlo como root : Ya encont

Ya find mi answer

kdialog --password "digite la contraseña" | su - root -c "bash /ruta/miscrip.sh"

o al zenity

zenity --hide-text --entry --title="digite la contraseña" | su - root -c "bash /ruta/miscrip.sh"

hize un pequeño ejercicio que funciona tanto en kde como en gnome, y en proceso descubri un pequeño par de caracteristicas o diferencias entre cuando lanzo un scrip con doble click o lo mando por consola

el plan es crear el archivo suG.sh darle permisos de ejecucion y correrlo dandole dobleclick o mandandolo por consola como usuario normal

!/bin/bash
nom="$0"
loc=`echo $0 | sed -e 's/suG.sh//g'`
par="$1"
if [ -z "$loc" ]; then
uso="pwd"
cd `pwd`
nom="`pwd`/$nom"
else
uso=loc
cd "$loc"
fi
###informacion del usuario y scrip

EN-US" lang="EN-US">if [ -e "/usr/bin/zenity" ]; then
zenity --info --text=" UID=$UID \n \$0=$0 \n pwd=`pwd` \n \$loc=$loc \n
uso=$uso \n nom=$nom "
elif [ -e "/usr/bin/kdialog" ]; then

kdialog --msgbox " UID=$UID
\n \$0=$0 \n pwd=`pwd` \n \$loc=$loc \n uso=$uso \n nom=$nom "
else
echo "no hay con que mostrar mensages graficos"
echo " UID=$UID \n \$0=$0 \n pwd=`pwd` \n \$loc=$loc \n uso=$uso \n
nom=$nom "
fi

###para evitarme bucles sin fin

EN-US" lang="EN-US">if [ $UID == 0 ]; then
exit
fi

if [ -e "/usr/bin/zenity" ]; then

ans=`zenity --list
--title="Seleccione la opción" --radiolist --column=""
--column="" --column="Elige:" "" "0"
"correr como usuario" "" "1" "correr como
root" "" "2" "no correr" ""
"3" "no hacer nada" --hide-column="2"`

EN-US" lang="EN-US">zenity --info --text="$ans"

elif [ -e "/usr/bin/kdialog" ]; then
ans=`kdialog --radiolist "Elige:" 0 "correr como usuario"
on 1 "correr como root" on 2 "no correr" on 3 "no
hacer nada" on 
4"cuatro"`

kdialog --msgbox
"$ans"
else
echo ""
fi

### pedir contraseña


EN-US" lang="EN-US">if [ $ans == 1 ]; then
if [ -e "/usr/bin/zenity" ]; then
zenity --hide-text --entry --title="digite la contraseña" | su - root
-c "bash $nom" &>> suM.log

elif [ -e
"/usr/bin/kdialog" ]; then
kdialog --password "digite la contraseña" | su - root -c "bash
$nom " &>> suM.log

else
echo ""
fi

fi


Gravatar de onitenchi

# 116551 nesesito aprender a meter codigo en este foro

no se por que pero no me vale <code> </code>

mientras tanto

http://www.4shared.com/file/AdJzMlUQ/suG.html

Opciones de visualización de comentarios

Seleccione la forma que desee de mostrar los comentarios y haga clic en «Guardar opciones» para activar los cambios.