Posteado por: chipi | diciembre 22, 2008

HOWTO: Ejecutar un script con permisos de superusuario sin tener que poner la contraseña

Alguna vez necesitaremos ejecutar un script con permisos de superusuario cada X tiempo o al inicio del sistema y no podemos estar metiendo la contraseña cada vez que se vaya a ejecutar. Para ello tenemos que crear un script y editar el archivo /etc/sudoers. Vamos a crear el script primero, pero no voy a entrar en explicar cómo se crea un script. Nuestro script es éste:

#!/bin/bash
#
#Script para sincronizar la hora con un servidor de internet
#
sleep 20
echo “$(sudo ntpdate pool.ntp.org)”

que guardaremos donde queramos, en mi caso en /home/chipi/scripts/
Debemos darle permisos de ejecución con chmod:

$ sudo chmod +x /ruta/al/script

Ya tenemos creado el script, ahora vamos a editar el archivo /etc/sudoers donde añadiremos un par de líneas para que no nos pida la contraseña de superusuario cuando ejecute el script. En el archivo buscamos las siguientes líneas:

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now

y añadimos debajo el usuario, grupo de usuarios o sencillamente todos los usuarios, sus privilejios y la ruta al script.
Por ejemplo si queremos que todos los usuarios logueados localmente o remotamente ejecuten el script sin tener que introducir la pass pondremos lo siguiente:

ALL ALL=NOPASSWD: /rutal/al/script

Si queremos que lo ejecute el usuario “chipi”, el que tendrá que estar logueado localmente, pondremos lo siguente:

chipi localhost=NOPASSWD: /ruta/al/script

o también podemos restringirlo a un grupo de usuarios llamado por ejemplo “alumnos”, y para ello pondremos:

%alumnos ALL=NOPASSWD: /ruta/al/script

y claro está podeis hacer la combinación según os convenga. Una vez hayais creado el script y modificado el archivo sudoers probaremos a ejecutarlo y si todo ha salido bien no nos pedirá la contraseña.

$ sudo ./sincronizarHora.sh

Espero os sirva de ayuda ;)

About these ads

Responses

  1. Gracias por la respuesta chipi, ya voy a probarlo a ver si funciona….

  2. [...] Dar permisos de root para un comando a un usuario, grupo o a todos se hacen los siguientes pasos: [...]

  3. Lamentablemente lo que vine a buscar no esta aquí, que es esto de:
    ¨pero no voy a entrar en explicar cómo se crea un script. Nuestro script es éste:¨
    que mal que no sepan detallar las cosas por aqui


Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

%d personas les gusta esto: