2012-04-26 90 views
1

到目前为止,我用这样的脚本,别名和在shell:在bash脚本/命令中找出用户名的最佳方法是什么?

qstat -u $USER 

现在我发现,无论是$USER变量也不$USERNAME不是在内置的bash。而$UID$EUID是。

我当然可以使用$(whoami)或类似的东西。有很多方法可以找出当前进程的用户名。但是,最好,最可行和最短的其中之一是什么?为什么?

+0

[POSIX](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html)需要'$ LOGNAME'被设置,但提到'$ USER'也被使用。不要将安全决定建立在'$ LOGNAME'或'$ USER'的值上,因为即使我以'pleb'身份登录,我可以执行'USER = root'和'LOGNAME = root'。 – 2012-04-26 14:30:16

回答

2

通常,$LOGNAME是用当前用户的名称定义的。

6

whoami看起来不推荐使用。那么id -un的建议呢?

whoami实用程序已被id(1)实用程序废弃,相当于``id -un'。

相关问题