2012-04-26 69 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'。

相關問題