Compruebe si un script se ejecuta como usuario root en Linux

Compruebe si un script se ejecuta como usuario root en Linux

A veces se requiere que los scripts de shell se ejecuten como usuario raíz para realizar algunas tareas con privilegios de administrador. En general, esas tareas se pueden lograr con los comandos de sudo. Si en algunos casos aún necesita obligar al usuario a ejecutar el script como usuario root, puede agregar código a su script para verificar si el script se ejecuta con el usuario root o no.

Compruebe si un script de shell se ejecuta como usuario root

Agregue el siguiente código al comienzo del script de shell para verificar si el script se está ejecutando como usuario root. Si el script se ejecuta como una cuenta no raíz, saldrá con el código de estado 1.

#!/usr/bin/env Bash if ["$ euid" -ne 0]; luego echo "Ejecute este script como usuario root" Salida 1 FI
123456#!/usr/bin/env Bash if ["$ euid" -ne 0]; luego echo "Ejecute este script como usuario root" Salir 1fi

Aquí el Eúdico es la variable del sistema que almacenó la ID de usuario (UID) del usuario iniciado actualmente. El UID del usuario de la "raíz" es siempre 0 en los sistemas de Linux.

En lugar de usar el UID, también puede hacer coincidir el nombre de usuario iniciado. El quién soy El comando proporciona el nombre de usuario registrado actualmente. El siguiente script verificará si el script se ejecuta como un usuario root o no.

#!/usr/bin/env bash if ['whoami' != 'root']; luego echo "Ejecute este script como usuario root" Salida 1 FI
123456#!/usr/bin/env bash if ['whoami' != 'root']; luego echo "Ejecute este script como usuario root" Salir 1fi

Compruebe si un script de shell se ejecuta como usuario no raíz

A veces se requiere que los scripts se ejecuten como una cuenta sin raíz. En ese caso, puede agregar el siguiente fragmento para verificar una cuenta de usuario y continuar solo si el script se está ejecutando como un usuario normal.

#!/usr/bin/env Bash if ["$ euid" -eq 0]; luego echo "Ejecute este script como usuario no raíz" Salida 1 Fi
123456#!/usr/bin/env Bash if ["$ euid" -eq 0]; luego echo "Ejecute este script como usuario no raíz" Salida 1fi

Conclusión

En esta guía rápida de instrucciones, ha aprendido sobre agregar restricciones en un script de shell para ejecutarse como usuario raíz o usuario no raíz. Si está ejecutando un usuario diferente, el script saldrá inmediatamente.