Bash, cómo hacer un script sólo ejecutable por root

From Wiki de Caballero
Jump to navigation Jump to search

Para hacer que un script sólo sea ejecutable por root (o en su defecto usando sudo) se puede agregar lo siguiente al principio del archivo:

# Make sure only root can run our script
if [ "$(id -u)" != "0" ]; then
   echo "Run this script as root (or using sudo)."
   exit 1
fi

El mismo código explicado con detalle:

# Solamente se puede ejecutar el archivo si es por root o usando sudo
#
# $(id -u) # Obtiene el id del usuario actual
# Si el usuario actual tiene como id 0 significa que es root
# Si el id del usuario actual NO es 0 entonces...
if [ "$(id -u)" != "0" ]; then
	# Muestra un mensaje en consola al usuario actual cuando no es root
	echo "Ejecuta este script como root (o usando sudo)."
	# Termina el script con un código 1
	# Normalmente en bash cuando un programa retorna algo diferente a 0
	# significa que generó un error
	exit 1
# Fin del if
fi
# Aquí va todo el código que solo se puede ejecutar como root o con sudo:
(...)