有os.getuid()其中「返回當前進程的用戶ID」。但是,如何找出任何給定用戶的ID?在Python和linux中如何獲得用戶的ID
20
A
回答
23
你可以使用pwd.getpwnam()
:
In [5]: pwd.getpwnam('aix').pw_uid
Out[5]: 1004
0
你可以只解析/etc/passwd
,它存儲在那裏。
5
pwd
:
import pwd
for p in pwd.getpwall():
print p
pwd.struct_passwd(pw_name='_calendar', pw_passwd='*', pw_uid=93, pw_gid=93, pw_gecos='Calendar', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_teamsserver', pw_passwd='*', pw_uid=94, pw_gid=94, pw_gecos='TeamsServer', pw_dir='/var/teamsserver', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_update_sharing', pw_passwd='*', pw_uid=95, pw_gid=-2, pw_gecos='Update Sharing', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_installer', pw_passwd='*', pw_uid=96, pw_gid=-2, pw_gecos='Installer', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_atsserver', pw_passwd='*', pw_uid=97, pw_gid=97, pw_gecos='ATS Server', pw_dir='/var/empty', pw_shell='/usr/bin/false')
pwd.struct_passwd(pw_name='_ftp', pw_passwd='*', pw_uid=98, pw_gid=-2, pw_gecos='FTP Daemon', pw_dir='/var/empty', pw_shell='/usr/bin/false')
15
假設你想要的是與用戶ID爲您的程序關聯的用戶名字符串,請嘗試:
import os
import pwd
pwd.getpwuid(os.getuid()).pw_name
使用os.geteuid()來獲取有效的UID,而不是,如果這種差異對你很重要。
使用pw_gecos而不是pw_name來獲取「真實姓名」,如果它填充到您的系統上。
相關問題
- 1. Python:如何獲得一個用戶名的組ID(如ID -Gn)
- 2. 如何獲得signed_request中的用戶ID?
- 3. 如何獲得受邀用戶的ID?
- 4. 如何從Linux中的python中的進程ID獲取用戶名?
- 5. 如何在linux c程序中獲得pthread的線程ID?
- 6. 如何獲得登錄用戶ID C#
- 7. 如何獲得dropbox用戶ID?
- 8. 如何獲得用戶登記從python的foursquare從給定的用戶id
- 9. 獲得用戶ID在URL中笨
- 10. 如何在jwt-auth中獲得授權用戶的ID?
- 11. Facebook的API如何獲得用戶ID和姓名?
- 12. 如何在python程序中獲取linux用戶名
- 13. Laravel,獲得用戶ID BroadcastOn()
- 14. 獲得分配的用戶名和改性的用戶ID
- 15. 如何在python中獲得用戶的N個輸入
- 16. 如何獲得Facebook的用戶名或用戶名和電子郵件ID
- 17. 如何獲得使用ID或一個USB(HID用法ID)連接的Linux
- 18. 如何在android中獲得broadcastreceiver的ID
- 19. 如何獲得Magento客戶ID
- 20. 如何獲得PayPal客戶端ID
- 21. 如何獲得Python中timedelta的總和?
- 22. Asp.net核心用戶獲得用戶Id
- 23. 如何獲得nodejs中用戶的身份池ID
- 24. 如何獲得與在WebSphere Application Server的用戶ID
- 25. 如何在RH Linux中獲得pthread
- 26. 如何在Linux中獲得java家園?
- 27. Magento:如何從用戶ID獲得用戶角色
- 28. 如何在Unix或Linux中使用Python獲取程序的進程ID?
- 29. 如何獲得購物車中相同用戶ID的兩個值的總和
- 30. 獲得ID,開始在用戶選擇
它可能存儲在那裏,或者在NIS中,或在LDAP中,或者在任何其他有nSwitch模塊的源中。這就是爲什麼我們有以'getpw'開頭的API--這樣你就沒有錯誤,因爲你在一個使用(比如說)NIS存儲用戶信息的系統上手動解析'/ etc/passwd'。 – mkj
mkj:謝謝!不知道NIS和LDAP。 – vines