Jde*_*eBP 28 passwd non-root-user
正如我在https://unix.stackexchange.com/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只是说...注意:... 没有解释兼容性机制的性质。 正如乔伊·赫斯 (Joey Hess) 在 2001 年所说:bin包含用户 ID/组 ID 是为了与旧应用程序兼容。新应用程序不应再使用bin用户 ID/组 ID。
bin:帮助:我的系统上没有用户或组拥有任何文件bin。他们有什么好处?从历史上看,他们可能是/bin? FHS、Debian 政策或 base-passwd 或 base-files 的更改日志中都没有提到它。
17 年后的今天,M. Hess 的问题在 Debian doco 中的 base-passwd 软件包中仍未得到解答。
那么bin账号有什么用呢?
Jde*_*eBP 36
bin 在 Linux 的整个生命周期中都没有正确地用于任何事情。就像运行级别和由于 中的记录而init产生的一样,在 Linux 发明之前,该帐户在 Unix 世界中已经过时了。这是 1980 年代的一个想法,但被 NFS(网络文件系统)及其用户的发明和采用所打破。2010 年代后期,当商业 Unix 世界的人们在 1990 年代积极停止使用它时,它继续存在于用户帐户数据库中,这证明了惯性。getty/etc/inittabbinnobody
当时的想法是,该bin用户所拥有的各种目录,如/bin和/usr/bin(的确有些在提到其他的https://unix.stackexchange.com/a/448799/5132如/usr/mbin和/usr/5bin)和非设置UID /非在其中设置 GID 文件。它还拥有 doco 文件和目录,例如手册页。
(在一些更极端的情况下,它甚至拥有/和/etc,尽管后者是创建 SunOS 操作系统映像时公认的错误。前者只是愚蠢的。)
因此,以 user 身份运行的软件更新bin权限并不是以超级用户身份运行、对系统执行任何操作的全面许可。软件升级者无法读取/写入私人用户文件、访问邮箱等;作为超级用户当然可以更新软件。
您— 丽贝卡·托马斯和里克·法罗 (1989)。System V 的 UNIX 管理指南。普伦蒂斯大厅。ISBN 9780139428890. p. 452./etc/passwd文件中的其他几个特殊帐户条目必须有密码。这些都是管理帐户- ,bin,daemon,sys,uucp,lp和adm。[…] 这些帐户存在的主要原因是命令、脚本、文件和设备的安全所有权。并且一些管理员为这些帐户安装密码并实际使用它们。[…] 无密码bin帐户对于系统破坏者非常有用。
NFS 是在 1980 年代初发明的,完全打破了这个想法。
正如上述引文所暗示的那样,它已经摇摇欲坠。这是因为更新超级用户理所当然地执行的基本实用程序的程序映像文件的能力/bin/ls,例如,是获得超级用户权限的直接载体,而使用bin帐户的访问权限划分只是意外阻止修改错误的目录,而不是阻止犯罪分子获得超级用户访问权限。
NFS 的出现突出了这一点。尽管 NFS 具有将超级用户帐户重新映射到普通非系统用户帐户的机制,但对于像bin. 因此,如果有人可以bin访问 NFS 客户端,那么他们就bin可以访问 NFS 服务器上的操作系统文件。事实上,它使 NFS 客户端上的超级用户(否则将被重新映射到服务器上的普通非系统用户)获得对服务器操作系统文件和目录的所有者访问权限。
这是 1990 年代初期的常识,当时人们接受的智慧是将超级用户chown拥有的东西bin塞进这个漏洞,这个漏洞已经成为 Unix 安全审计工具的标准报告项目,并被警告不要在安装 doco 之类的 Sendmail 中。
就 M. Hess 的问题而言,这个想法从未在 Debian 上被采纳,它只是在 Unix 世界中被认为是一个坏主意之后几年才出现的,而 Unix 世界确实在 Linux本身之前就知道它是一个坏主意被发明。历史可以追溯到 1980 年代的 BSD 操作系统早已废除了实际所有权,但仍然在帐户数据库中保留了用户帐户。 FreeBSD的转换bin:bin所有权root:wheel所有权早在1998年,例如。
/etc/inittab已成为过去。. 经常给出答案。