gpt4 book ai didi

c - 在c中使用getpwuid()检索文件的所有者名称总是抛出root

转载 作者:行者123 更新时间:2023-11-30 19:09:39 24 4
gpt4 key购买 nike

嗨,当我以 root 身份登录 Linux 系统并尝试使用 getpwuid() 获取文件的所有者名称时,它总是显示 root(lie) 而不是实际的所有者名称,下面是我的代码。请帮助我获取实际名称而不是 root。

int main(int argc, char *argv[])
{
register struct passwd *access;
register uid_t uid;
int c;

uid = geteuid ();
access= getpwuid (uid);
if (access)
{
puts (access->pw_name);
exit (EXIT_SUCCESS);
}
fprintf (stderr,"%s: cannot find username for UID %u\n",
_PROGRAM_NAME, (unsigned) uid);
exit (EXIT_FAILURE);

}

我总是以 root 身份获取用户名,我怎样才能获得所有者的实际名称?

最佳答案

geteuid() 获取进程当前运行的有效用户 ID。由于您以 root 身份登录,因此将返回 UID 0,并且 getpwuid() 将正确告诉您这是 root。

如果你想获取文件的所有者,为什么要使用geteuid()?您需要调用 stat() 系列中的函数来获取该信息。

关于c - 在c中使用getpwuid()检索文件的所有者名称总是抛出root,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42890587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com