Réponses:
À partir des variables d'environnement ,
$LOGNAME
est la même que celle $USER
qui donne
Le nom de l'utilisateur actuellement connecté. Cette variable est définie par le système. Vous ne devriez probablement pas modifier sa valeur manuellement.
De man logname
logname - imprimer le nom de connexion de l'utilisateur
Expained différemment utilisé par l'exemple suivant:
pandya@pandya-desktop:~$ sudo su
root@pandya-desktop:/home/pandya# echo $LOGNAME
root
root@pandya-desktop:/home/pandya# logname
pandya
root@pandya-desktop:/home/pandya# exit
exit
pandya@pandya-desktop:~$
Ici, vous pouvez voir la différence après la connexion en tant que root dans le terminal,
$LOGNAME
donne le nom de l' utilisateur actuellement connecté dans le terminal (ie root
)logname
nom de connexion de l'utilisateur imprimé qui s'est connecté à la session (ie pandya
)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
echo $USER > ~/.logname
Lorsque je veux accéder à mon nom de journal (par exemple, l'attribution à une variable Bash g_logname), je le fais ainsi:
declare g_logname="$(<~/.logname)";
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.