我有一個應用程序,可以在用戶被分享到共享用戶帳戶時運行,也可以不運行。我想要可靠地確定誰是真正的用戶對於某種「榮譽系統」ACL。我認爲通過跟蹤父/組/會話進程id,pstree
命令可以實現某種方式,但我不確定如何做到最好,或者是否有更好的替代方法。我最初試過getlogin()
。如果使用./myapp
,則該方法有效,但會失敗,並顯示'cat input | 。/ myapp`(因爲「控制終端」是共享帳戶擁有的管道)。通過sudo識別當前用戶的最可靠方法
我寧可不相信環境變量,因爲我不希望我的「榮譽系統」完全受到unset
的阻礙,當時信息在別處仍然可用。
我還想避免強制在密碼數據庫中查找,因爲這是遠程RPC(NIS或LDAP),我很確定wtmp
已經包含我需要的信息。