我仍在思考 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
。
为服务创建单独的用户(即所谓的应用程序用户)是一种常见的技术。