quand echo $LOGNAME
ou les logname
commandes s'exécutent normalement obtiennent le même résultat comme suit:
pandya@pandya-desktop:~$ echo $LOGNAME
pandya
pandya@pandya-desktop:~$ logname
pandya
Alors, y a-t-il une différence entre eux?
environment-variables
Pandya
la source
la source
Le nom de l'utilitaire est rompu en 16.04, apparemment volontairement car il est possible de pirater la valeur qu'il renvoie, ce qui pourrait être une faille de sécurité. https://bugzilla.gnome.org/show_bug.cgi?id=747046 J'avais utilisé logname dans certains scripts et je l'ai trouvé utile car il renvoyait toujours la même valeur (mon nom de connexion) si je l'appelais depuis un mon propre niveau ou à partir d'une invocation sudo, contrairement aux variables d'environnement $ USER et $ LOGNAME. Je ne craignais pas que quelqu'un pirate mon ordinateur et modifie la valeur qu'il renvoie. Hélas .... J'ai trouvé une solution de contournement. J'ai créé un fichier dans mon répertoire personnel en tant que tel
Lorsque je veux accéder à mon nom de journal (par exemple, l'attribution à une variable Bash g_logname), je le fais ainsi:
Cela fonctionne pour moi, que ce soit en tant que moi-même ou au niveau racine via sudo, qui conserve l'attribution de "~" comme répertoire personnel. Je peux créer un fichier .logname pour le répertoire personnel de chaque utilisateur du système. Oui, quelqu'un pourrait pirater mon ordinateur et modifier ces fichiers, mais cela ne m'inquiète pas vraiment. Je veux juste que mes scripts fonctionnent.
la source