为什么 Debian 将用户同步的登录 shell 设置为 /bin/sync?

Cyk*_*ker 17 users debian passwd

sync是 Debian 自己创建的用户帐户之一。我想知道为什么 Debian 将其登录 shell 设置为/bin/sync而不是/bin/false. Debian 如何使用这个用户帐户?

Ste*_*itt 26

这记录在/usr/share/doc/base-passwd/users-and-groups.txt.gz

同步

用户的外壳sync/bin/sync. 因此,如果将其密码设置为易于猜测的内容(例如“”),则任何人都可以在控制台同步系统,即使他们在系统上没有帐户。

这真是一个历史神器,我不希望现在的sync用户会这样设置。在过去,拥有这样一个用户是很有用的,这样可以物理访问控制台的人(例如在服务器机房或充满工作站的实验室,就像你在大学里看到的那样)可以降低数据丢失的风险。关闭系统(从恶意进程中恢复或只是使用工作站,如果它已被以前的用户锁定)。Debian 之前的 Unix 系统往往有一个sync用户和一个shutdown用户,您可以使用该用户在不知道root密码的情况下正确关闭系统。(在我们的 Sun SPARCstations 上,我们只是STOPA boot......)

值得注意的是,正如Peter Cordes 所提到的,许多系统上都提供了其他机制来确保安全关闭或从控制台重新启动而无法进行身份验证root:按下电源开关触发的 ACPI 事件(导致完全关闭),或CtrlAltDel(这会导致干净的重启)。AltSysRq可以用作同步、终止、卸载和重新启动的最后手段,但这不是干净的重新启动。正如JdeBP所提到的,拥有sync用户是一个非常古老的想法,至少可以追溯到 1980 年代初期。

  • 用户不需要做任何事情。如果管理员愿意,他们可以通过这种方式设置系统。历史背景在这里是相关的:在添加 `sync` 用户时,Alt+SysRq 组合不存在,Linux 系统更可能是某个地方的服务器或实验室中的共享系统,而不是单个- 用户笔记本电脑或台式机。提供一种可以访问控制台的人可以安全地为系统不正常关机做好准备的方式很有用,这样他们就可以在没有 root 访问权限的情况下重新启动系统,同时降低数据丢失的风险。 (4认同)
  • 值得指出的是,某些(许多?)Linux 发行版的默认安装设置为 ctrl+alt+f1(如果当前 VT 正在运行图形登录,则进入文本控制台),而不是拥有“关闭”帐户screen) 后跟 ctrl+alt+del 会触发一个 `shutdown -r now` 或等价物。所以物理访问 = 触发干净重启的能力,即使没有 SysRQ。 (2认同)
  • 您必须记住,其中一些系统来自“个人”计算机之前的时代。因此,同步可能会同步到磁带或其他运行速度极慢的介质,例如令牌环、软盘。同时,这些系统非常“脆弱”,电源循环可能会损坏它们。因此,如果您的 UPS 表示还有 5 分钟停电,您就关机并跳过同步,以免损坏一台价值数百万美元的机器。这些问题基本上已经不存在了。 (2认同)