gpt4 book ai didi

linux - 会不会是/etc/passwd在后台添加/删除了用户?

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:43 25 4
gpt4 key购买 nike

from pwd import getpwuid
getpwuid(48).pw_name

这个 Python 程序打印 apache 的概率为 99%。 48 是出现在 /etc/passwd 中的 apache 用户的 ID。没有任何明显的原因,Python 有时会打印错误:

KeyError: 'getpwuid(): uid not found: 48'

我需要理解为什么有时会发生这种情况。是否可以出于某种原因从文件中删除 apache 用户?

最佳答案

这是 pwd 模块的 CPython 2.7 源代码,特别是 getpwuid() 调用:https://github.com/python/cpython/blob/2.7/Modules/pwdmodule.c#L114它看起来像是系统 getpwuid 调用的包装器,代码不多——Python 不会直接从/etc/passwd 中读取。

这是 (3) getpwuid 的当前 Ubuntu 联机帮助页(您没有提到任何特定的操作系统):http://manpages.ubuntu.com/manpages/wily/man3/getpwuid.3posix.html其中包括:

ERRORS

The getpwuid() and getpwuid_r() functions may fail if:

   EIO    An I/O error has occurred.

EINTR A signal was caught during getpwuid().

EMFILE {OPEN_MAX} file descriptors are currently open in the calling
process.

ENFILE The maximum allowable number of files is currently open in the
system.

由于您没有提到任何可能会重新生成您的用户帐户的用户管理进程,我将回答不,apache 不会从/etc/passwd 中删除,但是您的网络服务器确实遇到了一些繁重的 IO或打开的文件过多导致无法读取/etc/passwd。

关于linux - 会不会是/etc/passwd在后台添加/删除了用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33945503/

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