例如,在Ubuntu盒子上鍵入compgen -u
將返回用戶列表。這包括比在/etc/passwd
中列出的更多的用戶。所以問題是,當使用bash完成列出用戶時,列表從哪裏來?從bash完成源返回的用戶列表在哪裏?
0
A
回答
1
您可以運行strace -o compgen.out bash -c 'compgen -u'
,然後查看compgen.out
文件以試圖找出它正在使用的內容。
在我的機器上,該文件以open("/etc/passwd", O_RDONLY)
結尾,然後寫入輸出。
+0
這是我最終使用的方法,能夠識別使用的配置文件以及查詢的用於檢索用戶列表的unix套接字。 – user3866591
2
/etc/passwd
是類UNIX系統上的用戶帳戶信息的默認來源,但通常由其他來源補充,特別是作爲某些大型組織機構中需要保持信息一致性的機器。
NIS(以前稱爲「YP」)是一種常見的系統。 LDAP是另一個。我確定還有其他人。
getent passwd
命令應該會顯示所有相關的帳戶信息。在我的機器上(不使用NIS或LDAP),它相當於cat /etc/passwd
;在你的,它可能會顯示額外的信息。
各種getpw*()
功能(getpwuid()
,getpwnam()
,getpwent()
)檢索用戶帳戶信息,相當於什麼在/etc/passwd
加任何補充您的系統使用。據推測,getent
命令和bash
都使用此機制來獲取相關信息。
相關問題
- 1. 在哪裏將Android完成()返回到
- 2. 在哪裏把bash完成腳本
- 3. 返回匹配列我在哪裏
- 4. Bash完成「本地」變量後,tmp文件在哪裏?
- 5. 使用語句在哪裏完成TransactionScope?
- 6. 這個「完成」按鈕從哪裏來?
- 7. 返回列表裏面的列表 - Python
- 8. main()中的返回返回到哪裏?
- 9. 返回哪裏兩列匹配
- 10. 生成用戶列表從AV輸出文件在bash
- 11. 環回用戶存儲在哪裏?
- 12. 從哪裏可以獲得libav *格式的完整列表?
- 13. 功能重寫在哪裏完成?
- 14. Swift,在返回列表之前等待兩個完成塊完成
- 15. UIApplication的handleOpenURL在哪裏返回?
- 16. GOTO:EOF返回到哪裏?
- 17. 如何確定已返回哪個SQLException /錯誤代碼列表在哪裏?
- 18. Linq查詢「哪裏[列]在(值的列表)」,返回單個值爲每個值?
- 19. 使用jQuery自動完成返回列表而不是過濾
- 20. ActiveDirectoryMembershipProvider源在哪裏
- 21. 在哪裏退出(1)`和哪裏返回錯誤?
- 22. SQL 2005 SP的返回值返回DBNULL - 我在哪裏出錯?
- 23. 從哪裏獲得rt.jar的完整源代碼?
- 24. 從遞歸返回的bash
- 25. 我在哪裏可以找到Facebook可能作爲oauthResult的一部分返回的錯誤的完整列表?
- 26. 我應該在哪裏返回聲明
- 27. PHP:在哪裏放置返回'假'值?
- 28. mysql返回記錄在哪裏條款
- 29. MySQL在哪裏返回一行
- 30. Retq指令,它在哪裏返回
它似乎來自我的機器上的'/ etc/passwd'。 –
@EtanReisner:推測你的機器沒有使用NIS或LDAP;看到我的答案。 –
@凱瑟湯普森的確。我幾乎指出存在額外的資源(如NIS和LDAP),以及如何通過'nsswitch.conf'/etc找到它們。但決定通用的「去找出」答案是更好的。 –