1 votos

Ejecutando un script con privilegios de administrador desde una terminal cliente estándar

Tengo la fuerte sensación de que estoy tratando de reinventar la rueda, pero pasé algún tiempo sin encontrar una solución existente.

Tengo una concha que ya funciona script con varios sudos. Su primer objetivo eran los usuarios de administración, así que todo estaba bien. Pero ahora tengo un bloqueo para los usuarios estándar. El sudo no funcionará, y como debo ejecutar este script en cualquier máquina en cualquier momento, editar sudoers no es una opción.

¿Cómo puedo reescribir esto script para que pida el usuario y la contraseña de administrador una vez, y luego use estas credenciales para ejecutar tantos su como sea necesario? Lo que intento hacer en particular es dar la contraseña a un su de una línea, pero, dejando de lado el riesgo de seguridad, nunca he podido usar algo como 'echo | su ...', como se ha visto en los foros.

Gracias

2voto

Douglas Puntos 10417

En términos generales, escribes el script como si un administrador lo fuera a ejecutar y compruebas si el usuario tiene privilegios de root para ejecutarlo. En toda mi serie script donde el script necesita privilegios de root, tengo el siguiente recorte de código que valida si el usuario tiene los privilegios correctos:

# Validates that user is root; exits if not
echo "Checking Root Priviliges"
if [ $(id -u) -ne 0 ]
  then exit 1;
  else echo "User is root";
fi

Básicamente, todo lo que hace es comprobar la UID es 0 para el usuario conectado actualmente. Puede intentarlo en la línea de comandos:

$ id -u                # My login
503

$ sudo id -u           # Root privileges
0

Ejecutando el script...

Hay un par de formas de ejecutar el script desde una cuenta de inicio de sesión que no tenga privilegios de administrador:

  • añadirlos a la sudoers o añadirlos al archivo wheel grupo
  • añadirlos a un grupo (además de la rueda) que tiene sudo privilegios
  • ejecuta el script remotamente vía ssh con credenciales de administrador
  • ejecutar el script como una lista de lanzamiento como un Demonio de Lanzamiento (funciona como root)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X