为什么网络为每个软件创建单独的用户?

rob*_*895 2 users

每当我安装某些东西时,例如 ghost、nginx、mysqld,我都会看到诸如以下命令:

useradd ghost 
useradd mysql
Run Code Online (Sandbox Code Playgroud)

这是什么原因?我猜这可能有助于对某些软件进行分类,以便为不同的用户提供不同的权限或软件访问限制,但我不了解整个情况。有人可以解释一下,至于有什么好处useradd mysql吗?

Ram*_*esh 5

它的存在有一个明显的原因。引用这个答案

当您创建帐户来运行守护程序、服务或其他系统软件,而不是用于交互使用的帐户时。

从技术上讲,它没有区别,但在现实世界中,将用户和软件帐户保存在数字空间的不同部分有长期的好处。

大多数情况下,它可以很容易地判断帐户是什么,以及人类是否应该能够登录。

许多 unix/linux 安全性取决于对文件的访问和执行它们的权限,而这通过用户帐户进行管理。

所以程序需要一个用户帐户才能工作。

为每个应用程序/服务/守护程序创建一个特定的帐户是很常见的,因为这可以对允许程序执行的操作进行细粒度的控制(例如,不要弄乱其他程序的文件)

然而,正如金发姑娘从他的评论中指出的那样,维护不同系统帐户的主要原因是出于安全目的而进行的划分。正如他指出的那样,由于 Web 服务是面向外部的,因此安全性是一个重要方面,系统帐户有助于实现它。

参考

http://ubuntuforums.org/showthread.php?t=1146686

  • 服务器错误答案中的引用,re:“将用户和软件帐户保存在数字空间的不同部分”与问题有点相关(如果您不知道这种区别,可能会令人困惑)。无论如何,主要原因当然是出于安全目的的划分。您可能想提及一个事实,因为 Web 服务是面向外的,这对他们来说尤其重要。 (2认同)