Username abfragen

  • Gibt es eine Möglichkeit den Username abzufragen?


    Standardmäßig ist der ja auf "pi" gestellt.


    Aber wenn ich nun den Administratornamen ändere führen ja alle /home/pi/... Pfade ins Leere.


    Deswegen würde ich gerne den Usernamen abfragen und in einer Variable usrname packen, so dass ich in Programmen den Pfad /home/usrname/... verwenden kann.

  • Hallo Verrain,


    tust Du so:

    Code
    whoami
    logname


    Beste Grüße


    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    • Icon-Tutorials (IDE: Geany) - GPIO-Library - µController-Programmierung in Icon! - ser. Devices - kein Support per PM / Konversation

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo,


    wenn du das Modul `os` importierst, dann hast du das Dict `environ`, wo du alles findest.


    `os.environ['USER']` enthält den Nutzernamen. Wenn du aber in Wirklichkeit das Homeverzeichnis brauchst, dann kannst du direkt `os.environ['HOME']` nehmen.


    Gruß, noisefloor

  • Leider spucken alle diese Methoden bei mir immer wieder "/root" aus.


    Das hilft mir aber nicht weiter :O.

  • id -nu
    Automatisch zusammengefügt:[hr]


    Leider spucken alle diese Methoden bei mir immer wieder "/root" aus.


    Das hilft mir aber nicht weiter :O.


    wenn immer root dabei rauskommt bist du imho auch als root angemeldet.
    mir ist nicht ganz klar welchen usernamen du suchst?

    Edited once, last by adora ().


  • Na z.B.: /home/verrain
    --------------------
    Wenn ich in die Konsole eingebe:
    echo "$HOME"


    spuckt er aus:
    /home/verrain
    --------------------
    wenn ich allerdings ein pythonprogramm erstell:
    import os
    os.system('echo "$HOME"')


    dann spuckt er aus:
    /root
    ---------------------
    selbiges mit subsystem

    Edited once, last by Verrain ().

  • ich kenn python nicht so gut.
    rufst du das programm denn als user verrain auf?
    dann sollte es auch verrain ausgeben.


    oder rufst du das mit sudo oder ueber syscron auf?
    dann sollte er root ausgeben.

  • Kann es sein, dass du das Pythonscript mit vorangestelltem sudo ausgeführt hast?


    Interessanterweise gibt

    Code
    ~ # su pi -c "echo $HOME"

    bei mir auch /root zurück. $HOME hängt wohl nicht vom Benutzer ab, der das Programm ausführt, sondern dem, der im Terminal angemeldet ist.

    Edited once, last by WitheredMud39507 ().


  • Das kann ich nicht bestätigen:


    Code
    pi@raspberrypi:~$ python 
    Python 2.7.9 (default, Mar  8 2015, 00:52:26) 
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import os
    >>> os.system('echo "$HOME"')
    /home/pi
    0
    >>>


    Du scheinst also "sudo" zu verwenden, was dazu führt dass Python als root ausgeführt wird und somit die Umgebungsvariablen andere sind.



    PS: Die " kann man hier auch weglassen.


  • Du scheinst also "sudo" zu verwenden, was dazu führt dass Python als root ausgeführt wird und somit die Umgebungsvariablen andere sind.


    AFAIK ändert sudo die Umgebungsvariablen nicht einmal:

    Code
    pi@raspberrypi:~ $ sudo python -c "import os; os.system('echo $HOME')"
    /home/pi


    Die Frage ist jetzt, wie kann man sich die Umgebungsvariablen eines anderen Benutzers anzeigen lassen?

  • AFAIK ändert sudo die Umgebungsvariablen nicht einmal:

    Code
    pi@raspberrypi:~ $ sudo python -c "import os; os.system('echo $HOME')"
    /home/pi


    In diesem Fall aber schon:


    Code
    pi@raspberrypi:~$ sudo python /tmp/s.py 
    /root
    pi@raspberrypi:~$ cat /tmp/s.py 
    import os
    os.system('echo $HOME')
    pi@raspberrypi:~$
  • man su
    da steht warum er bei $HOME was anderes anzeigt wie du erwartest,
    benutze su -l, dann stimmte es wieder.


    um das home verzeichnis eines anderen nutzers zu finden benutze ich unter gentoo:
    getent passwd user


    BASH beispiel

    Edited once, last by adora ().