bin用户的用途是什么?


27

正如我在/unix//a/484626/5132上所写的那样,这值得它自己进行问答。

在Linux操作系统上……

%getent passwd bin
bin:x:2:2:bin:/ bin:/ usr / sbin / nologin
%
……以及在FreeBSD上……

%getent passwd bin
bin:*:3:7:Binaries命令和源代码:/:/ usr / sbin / nologin
%
…以及在OpenBSD上…

$ getent passwd bin
bin:*:3:7:Binaries命令和源代码:/:/ sbin / nologin
$
…今天仍然可以找到一个bin帐户。但这几乎没有记录。在Linux标准基础版5只是说...

注意:bin包含用户ID /组ID是为了与旧版应用程序兼容。新应用程序不应再使用bin用户ID /组ID。
……没有说明兼容性机制的性质。 正如Joey Hess在2001年所说的

bin

帮助:我的系统上没有文件归用户或组所有bin。他们有什么好处?从历史上看,他们可能是二进制文件的所有者/bin?FHS,Debian策略或base-passwd或base-files的变更日志中未提及。

M. Hess的问题 17年后的今天的Debian doco中仍未得到答案,因为它的基本密码包

那么,bin帐户是做什么用的呢?


一个相关的问题是unix.stackexchange.com/questions/244989
JdeBP

Answers:


34

bin 在整个Linux生命周期中,它并没有适合任何东西。

就像运行级别和由于中的记录而init产生一样,该帐户在Linux发明之前就已经在Unix世界中过时了。这是1980年代的想法,被NFS(网络文件系统)及其用户的发明和采用所打破。当商业Unix世界的人们在1990年代积极停止使用它时,在2010年代末,它继续存在于用户帐户数据库中,这证明了惯性。getty/etc/inittabbinnobody

想法是,bin用户拥有各种目录,例如/bin/usr/bin(以及确实还有其他一些在/unix//a/448799/5132中提到的目录,例如/usr/mbin/usr/5bin)和non-set-UID / non-其中的set-GID文件。它还拥有doco文件和目录,例如手册页。

(在一些Unix系统更极端的情况下甚至拥有//etc,虽然后者是在创造一个SunOS操作系统映像的一个公认的错误。前者只是dunderheaded。)

因此,以user身份运行的软件更新bin许可权不是以超级用户身份运行的总括许可,以对系统执行任何操作。软件升级程序无法读取/写入私人用户文件,访问邮箱等。当然可以作为超级用户来更新软件。

/etc/passwd文件中的其他几个特殊帐户条目必须具有密码。这些都是管理帐户- ,bindaemonsysuucplpadm。[…]存在这些帐户的主要原因是对命令,脚本,文件和设备的安全所有权。一些管理员为这些帐户安装密码并实际使用它们。[…]无密码bin帐户对于系统破坏者非常有用。
—丽贝卡·托马斯(Rebecca Thomas)和里克·法罗(Rik Farrow)(1989)。UNIX系统V管理指南。学徒大厅。书号9780139428890。452。

NFS于1980年代初发明,并彻底打破了这个想法。

正如前面引述的那样,它已经处于不稳定状态。这是因为更新超级用户理所当然地执行的基本实用程序的程序映像文件的能力/bin/ls(例如)是获得超级用户特权的直接载体,并且使用bin帐户的访问分配只是偶然地防止了修改错误的目录,而不是阻止恶意因素获得超级用户访问权限。

NFS的出现突出了这一点。尽管NFS具有将超级用户帐户重新映射到普通的非系统用户帐户的机制,但对于非根帐户(如)则没有相同的机制bin。因此,如果某人可以bin在NFS客户端上获得访问权限,则它可以使他们bin访问NFS服务器上的操作系统文件。实际上,它使NFS客户端上的超级用户(该超级用户可以重新映射到服务器上的普通非系统用户)获得所有者对服务器操作系统文件和目录的访问权限。

这是1990年代初期的常识,当时的智慧是将超级用户chown拥有的东西归谁所有,以填补bin这个漏洞,该漏洞已经成为Unix安全审核工具中的标准报告项,并且受到警告就像安装Sendco的doco一样。

至于M.赫斯的问题而言,这个想法从未在Debian上,它被称为是在Unix世界一个坏主意,这的确知道这是Linux的前一个坏主意,只有进入了存在几年通过自身被发明。BSD操作系统的历史可以追溯到1980年代,尽管早已取消了实际所有权,但仍将用户帐户保留在帐户数据库中。 例如,在1998年FreeBSD将binbin所有权转换为rootwheel所有权

进一步阅读


1
今天,我已经看到binAIX系统上的用户和组拥有的文件。IBM可能出于某种原因使用它。我想到的一个AIX文件集是java。我将不得不跳上正在工作的AIX系统以进行进一步的验证。
Peschke

如今,AIX系统上仍然有大量的bin:bin拥有的文件。“ 安全性-保护基本操作系统-用户,组和密码”部分中的IBM AIX 7.2知识中心具有链接页面,该页面解释了各种“系统特殊用户帐户”的用途,包括bin
杰夫·谢勒

从前面的链接,bin不是对的一个,你可能能够删除常见的默认用户ID。另外:bin的密码输入为:bin:!:2:2::/bin:
Jeff Schaller

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.