quando os comandos echo $LOGNAME
ou logname
normalmente são executados, obtêm o mesmo resultado, como a seguir:
pandya@pandya-desktop:~$ echo $LOGNAME
pandya
pandya@pandya-desktop:~$ logname
pandya
Então, existe alguma diferença entre eles?
environment-variables
Pandya
fonte
fonte
O nome do log do utilitário foi quebrado no 16.04, aparentemente de propósito, porque é possível hackear o valor que ele retorna, o que poderia ser uma falha de segurança. https://bugzilla.gnome.org/show_bug.cgi?id=747046 Eu estava usando o nome do log em alguns scripts e achei útil porque sempre retornava o mesmo valor (meu nome de login), independentemente de eu estar ligando de um meu próprio nível ou de uma chamada de sudo, enquanto as variáveis de ambiente $ USER e $ LOGNAME não. Eu não estava preocupado com alguém invadir meu computador e modificar o valor que ele retorna. Infelizmente .... Encontrei uma solução alternativa. Criei um arquivo no meu diretório pessoal, como tal
Quando quero acessar meu nome de log (por exemplo, atribuindo a uma variável Bash g_logname), faço-o da seguinte maneira:
Isso funciona para mim, seja eu mesmo ou no nível raiz através do sudo, que mantém a atribuição de "~" como meu diretório pessoal. Eu posso criar um arquivo .logname para o diretório inicial de cada usuário no sistema. Sim, alguém poderia invadir meu computador e alterar esses arquivos, mas não estou realmente preocupado com isso. Eu só quero que meus scripts funcionem.
fonte