Users

wwhowhoamiid 的不同輸出

  • March 17, 2019

在線上命令行平台中,例如 Codecademy 上的平台,當我執行時

for cmd in w who whoami id
do
   echo $cmd
   $cmd
   echo =========================
   echo "             "
done

我明白了

w                              
00:52:54 up 8 days, 14:10,  0 users,  load average: 3.78, 2.98, 2.69      
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT       
=========================                            

who
=========================                                                 

whoami                          
ccuser                          
=========================                              
  
id
uid=1000(ccuser) gid=1000(ccuser) groups=1000(ccuser)     
=========================                   

注意只有whoamiid輸出一些東西。當我在我的電腦上執行相同的東西時,我看到所有命令的結果都相似。

為什麼 Codecademy 不向使用者顯示wand who?這些命令有什麼不同?

  • id報告

    • 其自身流程的目前憑證;或者
    • 命名使用者的憑據,從系統帳戶數據庫中讀出。
  • whoami報告其自身程序的目前憑據。

  • whow登錄數據庫報告活動登錄會話表。

BSD doco 指出,whoami它完成了 的工作的子集id,並id使其過時。

系統不必具有活動的登錄會話表。在 Linux 作業系統和 BSD 上,如果表沒有在引導時創建,或者從那以後被刪除,系統將在沒有表的情況下執行。此外,登錄和註銷不會在 Linux 作業系統上隱式創建它。

此外,非特權使用者不需要讀取該表,並且命令whow命令都不會將此報告為錯誤。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/506757