我想更改当前用户的脚本执行.我这样做了
import os
newuid = pwd.getpwnam('newuser').pw_uid
os.setuid(newuid)
print('User :' + getpass.getuser());
Run Code Online (Sandbox Code Playgroud)
我还在root.还有比这更好的方法吗?我希望切换用户一次,然后继续使用该新用户在脚本中执行其余的命令.
小智 5
getpass.getuser()不使用getuid()或geteuid()获取当前用户.
http://docs.python.org/3/library/getpass.html#getpass.getuser
此函数按顺序检查环境变量LOGNAME,USER,LNAME和USERNAME,并返回设置为非空字符串的第一个值.如果未设置,则在支持pwd模块的系统上返回密码数据库的登录名,否则将引发异常.