从Linux用户保护MySQL服务器

我有一个在Ubuntu上运行的LAMP。 我想授予一些同事和朋友的访问权限,使用我的机器上传他们的网站,并在他们的主目录中添加虚拟主机。 然而,系统中的几乎所有东西都可以被任何人阅读(显然这是Ubuntu的默认设置),这意味着他们也可以阅读我的项目,我已经把我所有的MySQL密码和什么不是,这意味着他们可以很容易login到我的服务器,因为他们已经ssh访问。 我知道我可以用我的密码只能读取我的文件,但这不是一个绝对的解决scheme,也许将来我可以忘记这么做,或者我可以不知不觉地改变权限,这仍然是一个问题。

也许如果我不允许用户使用mysql除非他们使用sudo将是足够的国际海事组织,但这是可能的吗?

通过对文件,目录,组和umasks应用“简单”权限,Ubuntu使桌面用户变得容易一些。 要将您的环境设置为多用户服务器,请参考以下build议:

  • 更改系统上所有用户帐户的默认umask 。 这允许如-rw-------这样的权限,当创build新的文件/目录时,而不是像默认的-rw-r--r--这样每个人都可以读取所有内容。
  • 删除Ubuntu添加到每个新的用户帐户的所有补充组(例如:脉冲,插件,光盘等)。
  • 当创build一个新的用户帐户时,创build一个与他们的用户名匹配的默认组,例如: # useradd --uid 51000 --create-home --user-groups user133 。 默认情况下,Ubuntu将使用1000的uid开始创build用户。将文件复制到为其他用户设置此用户标识的新系统时,这可能会有问题。 使用非默认的uid来开始创build用户可以节省您一些麻烦。 创build匹配的用户组名允许用户主目录上的权限专门为用户设置。

  • 创build一个补充组,允许共享所有用户将属于的文件,例如: # groupadd --gid 60001 webfiles 。 这将允许您为组webfiles组中的任何人分配共享文件和目录的权限。 需要提升访问权限的用户需要重启networking服务器,或者可以放在/etc/sudoers

  • 最后,对于mysql ,你所应用的安全分区将取决于你需要如何抨击。 如果你只是想保持事故发生,简单地给每个用户一个密码保护的数据库工作就足够了。