我应该使用单独的“admin”用户作为我的“root sudo”还是将 sudo 授予我的“app”用户?

我应该使用单独的“admin”用户作为我的“root sudo”还是将 sudo 授予我的“app”用户?

我仍在思考 Ubuntu 的“取消 root”用户管理理念(以及一般的 Linux),我想知道是否应该用名为“admin”的用户“替换”我的 root 用户(当使用 sudo 时,基本上拥有 root 的所有权限)并创建另一个名为“app”的用户,作为我的应用程序的主要用户。

以下是上下文:

  • 我将在 Ubuntu 12.04 Server LTS 上运行 LNMP 堆栈。
  • 服务器上将只有一个应用程序运行。
  • “app”用户需要拥有 MySQL 的超级权限。
  • PHP 需要能够 exec() shell 命令。
  • “应用程序”用户需要能够通过 SFTP 传输文件。

我认为这是最好的方法:

  • 取消“root”用户
  • 创建一个名为“admin”的用户,该用户将是 root 的完整 sudoer,这将是 NGINX、PHP 和 MySQL(以及所有系统软件)的新“root”用户
  • 在 MySQL 中授予“app”超级权限
  • 授予 SFTP 权限仅有的‘应用程序’用户。

由于我对此还不熟悉,而且我在研究过程中发现的信息往往比较笼统,所以我想知道这是否是一种可靠的方法,或者它是否是一种非正统的方法,从而会导致以后出现问题。

在此先感谢您的帮助。

答案1

完整的 sudo 权限应保留给实际的人类用户。您计划在其上下文中主要运行网络服务的用户不需要这些权限。您还可以考虑禁用这种纯“虚拟”用户的密码和登录 shell,方法是清空 中的密码字段/etc/shadow并将 shell 设置/etc/passwd/bin/false

为服务创建单独的用户(即所谓的应用程序用户)是一种常见的技术。

相关内容