Ejemplo práctico de comando ‘whoami’

El comando “whoami” tiene como único objetivo, el retornarnos el nombre del usuario que lo ejecuta. De entrada, parece ser no muy útil ya que, cualquier persona tendría (eso creo) que saber bajo que usuario está ejecutando, recordarlo y saber bajo que circunstancias y moento puede realizar un cambio de usuario en sesión. ¿Es así?

Su funcionalidad se incrementa en el uso de este comando en scripts de automatizaciones en los cuales quien los ejecuta, puede no ser un usuario que debiera tener dicha facultad. ¿Quieres saber cómo?

Utilicemos el siguiente script como ejemplo, algo muy sencillo:

#!/bin/bash
user=`whoami`
if [ $user == "pako" ]; then
 echo "Comandos si el usuario es el permitido"
else
 echo "La ejecucion del comando unicamente esta permitida para \"pako\""
fi

Para ejemplificar, la sencillez nos vendrá muy bien. No se nos olvide asignar permisos de ejecución

chmod a+x nombre_script.sh

Y lo ejecutamos. Claro está que tendrán como mensaje:

La ejecución del comando unicamente esta permitida para "pako"

Ésto deberán de cambiarlo por su usuario mortal dentro del script, específicamente en la línea de comparación “IF”. De ésta manera, dentro del script podemos negar de alguna manera la ejecución de ciertos comandos si el usuario ejecutar no es un usuario que nosotros como administradores consideremos pertinente.

Es importante aclarar que la salida del comando whoami es diferente a la variable de entorno $USERNAME. Ya que la primera, nos devuelve el nombre del usuario que ejecuta el comando y la segunda, nos regresa el nombre del usuario con que se inició sesión; si no se realiza cambio de usuario con algo similar a comando SU, el valor sería el mismo y podría causarnos confusión. No siempre será así, vayamos a un ejemplo:

#!/bin/bash
user=`whoami`
if [ $user == "pako" ]; then
 echo "Comandos si el usuario es el permitido"
 echo "username: "$USERNAME
else
 echo "La ejecucion del comando unicamente esta permitida para \"pako\""
 echo "username: "$USERNAME
fi

Para observar el resultado, inicia sesión con tu usuario mortal y cambia a otro con comando SU, en mi caso a root. Se tendrá una salida similar a:

root@vdebian:/tmp# ./test_user.sh 
La ejecucion del comando unicamente esta permitida para "pako"
username: pako

Cuando en realidad fué ejecutado por root; $USERNAME es diferente de whoami. Se te ocurré algún ejemplo? Saludos.

Facebook Twitter Email

Entradas relacionadas

  • Sin entradas relacionadas

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *