为什么 FreeBSD 上的某些用户名以下划线开头?

为什么 FreeBSD 上的某些用户名以下划线开头?

FreeBSD 上的一些用户名以下划线开头:

_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin

但其他人则没有:

www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin

这个下划线有什么意义呢?它纯粹是历史性的还是有实际目的?

更多的例子可以在 FreeBSD 中看到端口/UID文件。

答案1

可能不止一种情况,但您指出的情况已在邮件列表线程中讨论过ISC DHCP 服务器端口 UID/GID 问题2008 年,_dhcp已知该用户是一个特殊帐户(具有与守护程序不同的权限):

  I noticed that, but I believe that that is a privilege separation 
account that is used with the OpenBSD-version of the dhclient. Also, as 
I pointed out, if this is usable, then why isn't the isc-dhcp-server 
port using it instead of allocating a UID/GID for itself during the install?

Erik

Florent Thoumie wrote:
> On Jan 18, 2008 12:01 PM, Erik Van Benschoten <evanben at valleycomnet.com> wrote:
>> Greetings,
>>
>>   Is there a specific reason that the port of the ISC's DHCP server does
>> not seem to have/use a registered UID/GID?
> 
> Maybe because there's already _dhcp user (uid 65) in base?

检查我的 FreeBSD 10 机器,我看到另一个帐户,这个帐户标记得足够清楚:

_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin

进一步阅读:

    好吧,你们读过《更新》吗?
    > 20040623:
    > pf 已更新至 OpenBSD-stable 3.5 并且 pflogd(8) 是特权
    > 现在分开了。它使用新创建的“_pflogd”用户/组
    > 组合。如果您计划使用 pflogd(8) 请确保运行
    > mergemaster -p 或手动安装“_pflogd”用户和组。

答案2

它与 OpenBSD 约定相关,在《Absolute OpenBSD,第二版:实用偏执者的 Unix》(第 103 页)一书中提到:

_用户名

如果您查看 /etc/passwd,您会发现许多非特权用户的名称前都有下划线,例如 _syslogd 、 _ldapd 和 _dhcp 。

这是用于识别非特权用户的 OpenBSD 约定。大多数附加软件还使用以下划线开头的非特权用户名,例如 _mysql 和 _postgresql 。

然而,并非所有非特权用户名都以下划线开头。其中一些是 OpenBSD 出于兼容性原因保留的旧用户,例如 nobody 。其他人有悠久的历史或支持不灵活的软件,改变它们会带来更多的烦恼而不是其价值。

下划线的存在意味着用户没有特权。缺少下划线意味着什么;用户可能是普通用户,也可能没有特权。如果您创建自己的非特权用户,则不需要包含前导下划线,但这样做将有助于其他系统管理员了解用户的操作。

相关内容