Antworten:
Aus Umgebungsvariablen ,
$LOGNAME
ist das gleiche wie $USER
was gibt
Der Name des aktuell angemeldeten Benutzers. Diese Variable wird vom System festgelegt. Sie sollten den Wert wahrscheinlich nicht manuell ändern.
Von man logname
logname - Anmeldename des Druckers
Im folgenden Beispiel anders verwendet :
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:~$
Hier sehen Sie Unterschiede nach der Anmeldung als root im Terminal,
$LOGNAME
gibt den Namen des aktuell im Terminal angemeldeten Benutzers an (dh root
)logname
Anmeldename des Druckbenutzers, der sich in der Sitzung angemeldet hat (dh pandya
)Das Dienstprogramm logname wurde in 16.04 unterbrochen, anscheinend absichtlich, weil es möglich ist, den zurückgegebenen Wert zu hacken, was eine Sicherheitslücke sein könnte. https://bugzilla.gnome.org/show_bug.cgi?id=747046 Ich habe in einigen Skripten logname verwendet und fand es nützlich, weil es immer den gleichen Wert (meinen Anmeldenamen) zurückgab, unabhängig davon, ob ich es von einem aus anrief meine eigene Ebene oder von einem Sudo-Aufruf, während die Umgebungsvariablen $ USER und $ LOGNAME dies nicht tun. Ich habe mir keine Sorgen gemacht, dass sich jemand in meinen Computer hackt und den zurückgegebenen Wert ändert. Leider ... habe ich eine Problemumgehung gefunden. Ich habe eine Datei in meinem Home-Verzeichnis als solche erstellt
echo $USER > ~/.logname
Wenn ich auf meinen Lognamen zugreifen möchte (z. B. einer Bash-Variablen g_logname zuweisen), gehe ich folgendermaßen vor:
declare g_logname="$(<~/.logname)";
Dies funktioniert für mich, ob als ich selbst oder auf der Root-Ebene durch sudo, das die Zuweisung von "~" als mein Home-Verzeichnis beibehält. Ich kann eine .logname-Datei für das Home-Verzeichnis jedes Benutzers auf dem System erstellen. Ja, jemand könnte sich in meinen Computer hacken und diese Dateien ändern, aber ich mache mir darüber keine großen Sorgen. Ich möchte nur, dass meine Skripte funktionieren.