El comando please – Un poco de porfavor en CLI

Lo mismo te cansa tener que indicar sudo cada vez que ejecutas un comando con el que no tienes permisos de ejecución. Y te cansa ya que tienes que repetir el comando pero añadiendo sudo al principio.

Existen atajos que nos puede venir bien para esto pero no toca hablar de ello hoy y si de que podemos crearnos un alias llamado «please» que nos va a servir para solicitar las cosas con educación.

Normalmente comandos que están en /sbin/ son comandos para ejecutar como superUsuario (root). Y al margen de tener o no permisos para ejecutarlos normalmente simplemente no se ejecutarán ya que no anda el directorio /sbin en el PATH del usuario que lo intenta ejecutar.

Por eso hwclock por ejemplo ejecutado en una shell bash nos soltará un:

«-bash: hwclock: orden no encontrada».

Lo mismo el «deprecated» comando ifconfig. Podemos ejecutarlo como usuario si indicamos la ruta entera en la que suele estar el binario ejecutable:

$ /sbin/ifconfig

Pero si lo ejecutamos como un usuario normal posiblemente no funcionará:

$ ifconfig

Esto podemos comprobarlo si imprimimos el contenido de la variable $PATH por pantalla como usuario y como root:

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Como root veremos /sbin y /usr/sbin y por tanto si tecleamos ifconfig o hwclock funcionarán mientras que si lo hacemos con un usuario normal al no estar ese directorio recogido en el PATH no se ejecutará.

Y aunque esto no es 100% cierto todo creo que se entiende, es decir, lo mismo ejecutamos /sbin/ifconfig como usuario normal y funciona pero lo mismo /sbin/hwclock no. Pero no nos liemos, vamos al alias, a como hacer que el comando please funcione en nuestros sistemas.

Crear el alias «please»

Podemos probarlo de forma no permanente escribiendo con nuestro usuario normal de sistema lo siguiente:

$ alias please='sudo $(fc -ln -1)'

Y luego podemos por ejemplo ejecutar en una debian/ubuntu/… lo siguiente:

Tal y como puede verse apt (que suele estar en /bin y por tanto en el PATH del user normal) detecta que no eres root, que no tienes permisos para actualizar los repositorios.

Si le decimos «please» y le hablamos con educación nos dejará actualizar los repos.

Lo que estamos haciendo es repetir la orden pero con sudo delante. Pero de una forma más elegante y con menos esfuerzo.

Si quisiéramos el alias permanente podemos añadirlo al archivo .bashrc de nuestro usuario, guardar el archivo y los cambios y ejecutar source .bashrc para que se haga un reload.

Ya tendremos el comando please listo para que empecemos a ser un poco educados.

Nota: Evidentemente esto funcionará si nuestro usuario está en sudoers y tiene permisos.


Tira cómica XKCD de Randall Munroe: https://www.xkcd.com/149/

Dejar un comentario

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