我有一些问题:
- 以 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)端口上进行绑定,或者在启动时自动启动。大多数人可以转移到另一个用户,但这通常取决于产品:请参阅他们的特定文档。