在 python 如何从 root 用户获取普通用户名?

In python how to get normal username from the root user?

当我想要一个用户目录作为 Python3 中的普通用户时,来自终端

>>> os.path.expanduser('~')
/home/user

当我运行在root(sudo su)

 >>> os.path.expanduser('~')
    /root/

有没有办法从python3中的root用户获取/home/user目录?

cd /home/user && sudo python3 main.py

格式,它会运行在你想要的任何目录中。

os.path.expanduser('~{user}')

其中 {user} 是任何用户,在您的情况下...用户:

os.path.expanduser('~user')

我认为你想要的是 os.getlogin() 甚至更好 getpass.getlogin()。根据 os.login() 的标准库文档:

For most purposes, it is more useful to use getpass.getuser() since the latter checks the environment variables LOGNAME or USERNAME to find out who the user is, and falls back to pwd.getpwuid(os.getuid())[0] to get the login name of the current real user id.

所以如果你想注意环境变量,使用getpass.getlogin() else prefere os.getlogin()