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: www.xkcd.com/149/