bin
在整个Linux生命周期中,它并没有适合任何东西。
就像运行级别和由于中的记录而init
产生一样,该帐户在Linux发明之前就已经在Unix世界中过时了。这是1980年代的想法,被NFS(网络文件系统)及其用户的发明和采用所打破。当商业Unix世界的人们在1990年代积极停止使用它时,在2010年代末,它继续存在于用户帐户数据库中,这证明了惯性。getty
/etc/inittab
bin
nobody
想法是,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
文件中的其他几个特殊帐户条目必须具有密码。这些都是管理帐户- ,bin
,daemon
,sys
,uucp
,lp
和adm
。[…]存在这些帐户的主要原因是对命令,脚本,文件和设备的安全所有权。一些管理员为这些帐户安装密码并实际使用它们。[…]无密码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将bin
:bin
所有权转换为root
:wheel
所有权。
进一步阅读