如何在erlang中通过uid获取用户名?

时间:2013-03-01 18:58:04

标签: erlang

File模块具有File:file_info()和File:read_file_info等函数,它们返回相对于文件的#file_info记录。它包含 uid gid 等字段,它们是与操作系统用户ID和组ID相关的数字标识符

所有文件操作都使用数字uid和gid值,但是通过用户名(字符串)识别它会很好,因为主机上的uid可能与另一个主机不同,但用户名可能相同根据部门公约(安装政策/等)的事项。

问题:是否有适用于大多数操作系统的模块或函数来检索给定uid或gid的用户名和组名?

1 个答案:

答案 0 :(得分:2)

对于符合POSIX标准的操作系统,C函数选择getpwuid。要获取组名,等效项为getgrgid

Jungerl曾经有一个posix_drv driver module提供了这两个功能。 但它已经很老了,并且在R15中影响驱动程序API的变化无法幸免。

另一种选择可能是:https://github.com/sergey-miryanov/erlang-pwd - 为您提供get_by_uid(调用getpwuid),但没有等效于getgrgid