#!/usr/bin/env python2
from pyutmp import UtmpFile
import time, os
mytty = os.ttyname(os.open("/dev/stdin", os.O_RDONLY))
for utmp in UtmpFile():
if utmp.ut_user_process and utmp.ut_line == mytty:
print '%s logged in at %s on tty %s' % (utmp.ut_user, time.ctime(utmp.ut_time), utmp.ut_line)
$ ./test.py
martin logged in at Tue Jul 1 21:38:35 2014 on tty /dev/pts/5
$ sudo ./test.py
martin logged in at Tue Jul 1 21:38:35 2014 on tty /dev/pts/5
SUDO_用户环境变量在大多数情况下应可用:
who am i
从^{下面是一个改编自
pyutmp
主页的示例:缺点是:Python只需要编译模块(3)。在
也许更好的选择是使用
^{pr2}$sudo
提供的环境变量?例如:所以使用类似
os.environ['SUDO_USER']
的方法可能会更好,这取决于你到底想做什么。在根据设置,您可以使用已设置的环境变量。请注意,这可能不是在所有情况下都有效,但在你的情况下可能有效。应该在su之前返回原始用户。在
相关问题 更多 >
编程相关推荐