cuando echo $LOGNAME
o los logname
comandos ejecutados normalmente obtienen el mismo resultado como el siguiente:
pandya@pandya-desktop:~$ echo $LOGNAME
pandya
pandya@pandya-desktop:~$ logname
pandya
Entonces, ¿hay alguna diferencia entre ellos?
environment-variables
Pandya
fuente
fuente
El nombre de registro de la utilidad está roto en 16.04, aparentemente a propósito porque es posible hackear el valor que devuelve, lo que podría ser una falla de seguridad. https://bugzilla.gnome.org/show_bug.cgi?id=747046 Había estado usando logname en algunos scripts, y lo encontré útil porque siempre devolvía el mismo valor (mi nombre de usuario) si lo llamaba desde un mi propio nivel o desde una invocación de sudo, mientras que las variables de entorno $ USER y $ LOGNAME no lo hacen. No me preocupaba que alguien pirateara mi computadora y modificara el valor que devuelve. Por desgracia ... he encontrado una solución. Creé un archivo en mi directorio de inicio como tal
Cuando quiero acceder a mi nombre de registro (por ejemplo, asignar a una variable Bash g_logname), lo hago así:
Esto funciona para mí, ya sea como yo mismo o en el nivel raíz a través de sudo, que mantiene la asignación de "~" como mi directorio de inicio. Puedo crear un archivo .logname para el directorio de inicio de cada usuario en el sistema. Sí, alguien podría piratear mi computadora y cambiar estos archivos, pero no estoy realmente preocupado por eso. Solo quiero que mis guiones funcionen.
fuente