我正在尝试建立一个简单的 LAMP 系统,同时考虑一些基本的安全性。如果我想创建一个可供 PHP 访问的 MySQL,应该在哪个用户下创建数据库?任何有关最佳实践的参考都将不胜感激。
谢谢!
答案1
假设您运行整个堆栈,那么没有理由不以自己的用户身份运行每个应用程序。您必须以 root 或其他特权用户身份创建帐户,但您可以更改 root 的用户名 -参见此处步骤 4.5或者创建具有正确权限的新用户,但我从来没见过有人做后者。
顺便说一句,您可能还想限制 mysql 服务器在防火墙级别监听本地主机,如果您需要做任何事情,您必须通过 ssh 接入,但这不太可能造成妥协。
答案2
您似乎指的是 mysql 用户而不是系统用户,但是您对 LAMP 堆栈的引用表明了对 mysql 系统用户的简短评论......
通常用于生产部署,您将从分发包中安装 mysql、apache、PHP/Perl,因此您将运行包安装命令,例如apt-get install mysql-server apache2 php
以yum install httpd mysql-server php53
root 用户或具有 sudo 权限的某些用户的身份运行。
安装过程负责配置用户 apache 和 mysql,以便这些服务以该用户身份运行。您可能会注意到 /var/lib/mysql 中的文件归 mysql 用户所有,而 mysqld 进程归 mysql 所有。
在 mysql 中,用户需要“创造“创建新数据库的权限,默认情况下,该权限分配给根用户。
我通常会为 root 设置一个较长的(16 个字符)密码,并将其存储在离线文件中,并创建第二个用户“dba”,用于日常操作。每个数据库都有一个仅具有写权限的用户帐户,并且 root 和 dba 用户仅限于“localhost”