问题标签 [getpwuid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2419 浏览

c - 我应该释放 Linux 中 getpwuid() 返回的指针吗?

在我调用之后getpwuid(uid),我有一个指针的引用。当我不再使用它时,我应该释放它吗?阅读手册页,它说它引用了一些静态区域,可能会被后续调用相同的函数覆盖,所以我不确定我是否应该触摸那个内存区域。

谢谢。

0 投票
2 回答
1700 浏览

windows - 如何在 Windows 上的 Perl 中获取用户和组信息?

Perl 有几个内置函数用于访问 Unix 系统(以及其他支持时)上的 /etc/passwd 以获取用户和组信息。例如,

将返回给定用户 ID 的用户名,如果没有这样的用户,则返回 undef。

如果 Perl 脚本需要可移植并在 Unices 和 Windows 上运行,应该如何访问用户和组信息?ActivePerl 似乎支持 User::grent 和 User::pwent 模块,它们提供对 /etc/passwd 的按字段访问——即使在 Windows 中也是如此。奇怪的是,它们不支持内置函数 getpw* 和 getgr*。还有哪些其他选择?

0 投票
1 回答
435 浏览

cocoa - 系统偏好设置 > 帐户的 uids / 名称列表

如何获取带有 uid 和名称的数组?

我可以从 0 迭代到 99999 并执行getpwnam(). 但是,大多数机器的帐户少于 5 个,因此不是最佳选择。我不知道什么框架对此负责,因此我不知道要搜索什么。

有没有更优的方案可以遍历账户?

编辑:就在我发布后,我发现getpwent()了遍历帐户。

但是,这并不表示帐户是否是系统偏好帐户。

那么如何获得系统偏好帐户呢?


编辑:我找到了与此等效的命令行dscl命令。

0 投票
1 回答
515 浏览

macos - 如何让 getpwuid 在我的 mac 应用程序中工作?

我正在尝试让我的沙盒 mac 应用程序访问用户的真实主文件夹。

这是我尝试过的

但我收到了这个错误:

我错过了什么?

0 投票
1 回答
224 浏览

objective-c - si_user_byuid/getpwuid 中的内存泄漏源自 iOS 中的 CPSharedResourcesDirectory

我正处于产品的优化/分析阶段,该产品将在几周内上线,我很惊讶地发现一些漏洞(我相信)并非源自我的代码。其中之一是 iOS 5.1.1 中存在的 strdup/malloc 泄漏,对此我只能等待更新。然而今天我发现了一个新的,我目前正试图查明它在哪里以及如何泄漏。仪器报告:

从我做的一点挖掘中,我发现 getpwuid 是一个由<pwd.h>. 在 Instruments 中双击si_user_byuid会出现“No Source”标志,双击getpwuid会出现 arm7 组件(很抱歉通知您我不熟悉):

所以:

  • 有没有人见过这个 ?
  • 会不会是假阳性?
  • 会不会仅限于 iOS 5.1.1 ?
0 投票
1 回答
105 浏览

perl - SVK 同步和计划任务

我正在尝试自动化 SVK 同步过程。
配置完SVK镜像后,我写了一个批处理文件,内容如下

然后我添加了一个在我的管理帐户下运行的 Windows 计划任务。

在 svk.log 我读过

getpwuid 函数在 C:\Programmi\svk\bin\svk 第 142 行未实现。

有什么提示吗?

ps 我可以从命令行运行 svn sync -a(同一用户)

0 投票
2 回答
1117 浏览

c++ - valgrind 使用 Ubuntu 报告 c++ 中的 getpwuid() 泄漏

我有以下 C++ 文件 pwd01.cpp:

我使用以下命令编译它:

在 Ubuntu 12.04.1 LTS / gcc 版本 4.6.3 上,valgrind 报告泄漏(见下文)。当我在 Mac OS 10.6.8 / gcc 版本 4.2.1 上使用相同的命令编译相同的代码时,valgrind 报告没有泄漏。

我知道我不需要释放 passwd* (我应该释放 Linux 中 getpwuid() 返回的指针吗?);所以我错过了什么?

0 投票
3 回答
6718 浏览

linux - getpwuid() 为 LDAP 用户返回 NULL

我在检索用户是 LDAP 用户的 Red Hat Enterprise 6 的当前用户信息时遇到问题?

我有一些代码(实际上是安装工具的一部分)需要检索用户名、主目录和其他详细信息。它使用 getpwuid() 调用根据用户 ID 执行此操作。一个简化的细分:

如果用户是本地用户(在该系统的 /etc/passwd 中),这不会出现问题。

当用户是LDAP认证用户时,调用getuid返回用户ID或当前用户,但调用getpwuid返回0,errno中没有设置错误码。根据文档,这意味着用户不存在。

这应该工作吗?根据 getpwuid 联机帮助页:

getpwnam() 函数返回一个指向结构的指针,该结构包含与用户名名称匹配的密码数据库(例如,本地密码文件/etc/passwd、NIS 和LDAP)中记录的断开字段。

getpwuid() 函数返回一个指向结构的指针,该结构包含密码数据库中与用户 ID uid 匹配的记录的断开字段。

如果当前用户已通过 LDAP 身份验证,是否需要替代调用来获取详细信息?是否有必要在应用程序中打开 LDAP 数据库,还是应该由系统调用处理?

附加:我现在也在一个针对同一个 LDAP 目录进行身份验证的 RHEL 5 机器上进行了尝试。这可能只是 RHEL 6 机器上的配置问题吗?还是更广泛的 RHEL 6 问题?

附加:Basile Starynkevitch 要求的 /etc/nsswitch.conf(已删除注释行):

我猜其中一些应该在某个时候提到ldap?事实上,这表明它根本没有使用 LDAP....

0 投票
0 回答
477 浏览

linux - getpwuid() 随机崩溃

我有一个将 uids 转换为用户名的函数,

我称之为:

ABRT有时它会因错误或错误而崩溃BUS

(我知道有符号整数和无符号整数之间存在转换,但我用负值测试了 getpwuid 函数,它不会崩溃。)

有什么想法可以在这里出错吗?

0 投票
1 回答
163 浏览

c - 第二个 getpwuid 调用似乎覆盖了旧值

这是一个小型 C 程序,当文件设置了 setuid 标志时,它会打印(嗯,应该打印)进程的真实有效 ID。在这个程序中,当我getpwuid第二次调用(L.No 38)时,它往往会覆盖在 L.No 24 中获得的变量的值。realUserName我无法解释这种行为。这是预期的行为吗?为什么?我正在 Linux 机器(RHEL 2.6.18-371.1.2.el5)中尝试这个。

输出: