擅长:python、mysql、java
<p><code>who am i</code>从<a href="http://linux.die.net/man/5/utmp" rel="nofollow">^{<cd2>}</a>获取它的信息;
使用Python,您可以使用<a href="http://software.clapper.org/pyutmp/" rel="nofollow">pyutmp</a></p>
<p>下面是一个改编自<code>pyutmp</code>主页的示例:</p>
<pre><code>#!/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
</code></pre>
<p>缺点是:Python只需要编译模块(3)。在</p>
<p>也许更好的选择是使用<code>sudo</code>提供的环境变量?例如:</p>
^{pr2}$
<p>所以使用类似<code>os.environ['SUDO_USER']</code><em>的方法可能会更好,这取决于你到底想做什么。在</p>