以 root 身份运行程序、以用户身份运行程序、以 sudo xxxx 身份运行程序

以 root 身份运行程序、以用户身份运行程序、以 sudo xxxx 身份运行程序

我有一些问题:

  • 以 root 身份运行程序和使用 运行程序有什么区别sudo programxxx? sudo 更安全吗?
  • 我必须以用户身份运行进程吗?或者也许作为sudo excuteprogram
  • 那么,我如何以用户身份运行这些程序:Apache、phpmyadmin、mysql? (我的意思是,1 个用户运行 = 一个守护进程、程序,这样好吗?)
  • 如何以用户身份运行程序?我无法以普通用户身份运行 apache、mysql 和其他程序。

答案1

Sudo 更“安全”,因为它遵循最小特权原则。也就是说“仅当您绝对需要时才以管理员权限运行必须

Sudo 还会记录哪个用户在以 root 身份运行时执行哪个命令,除非您启用了auditd。

Sudo 也非常可配置。您可以允许名为“Web 管理员”的组重新启动 apache 或 nginx 进程。因此,您可以将超级用户/管理员权限限制为特定组所需的命令。

Sudo 还允许您以 root 以外的身份运行程序。 “sudo -u mysql ”允许您以 mysql 用户身份运行。同样,这可以通过赋予不同群体或人不同的特权来控制。

答案2

直接以 root 身份运行程序或通过 sudo 运行程序具有基本相同的结果。使用 sudo 是为了避免一直使用 root 帐户,否则错误可能会产生严重的后果。

关于您引用的特定程序,其中一些程序必须首先以 root 身份启动,以便它们可以正确初始化,例如在特权(<1024)端口上进行绑定,或者在启动时自动启动。大多数人可以转移到另一个用户,但这通常取决于产品:请参阅他们的特定文档。

相关内容