MongoDB密钥文件权限过于开放

22
我已创建了一个三个成员的副本集 (在分离的服务器上),按照mongodb网站上的教程进行操作。
我在 /etc/mongodb.conf 中配置了以下内容:
fork=true keyFile=/srv/mongodb/keyFile 我在该位置创建了 keyFile 文件,但服务器总是告诉我 "permissions are too open" 错误。
可能出了什么问题?
谢谢。

抱歉,这个回答的意思是这些权限需要放在整个路径上还是只需要放在密钥文件上?因为这个回答跟Mongo手册中写的一样(chmod 600 /path/to/keyfile),唯一的区别就是手册上说400权限,但并没有说明整个路径是否需要具有相同级别的权限。 - Keith Aich
1个回答

47

来自文档

在UNIX系统中,密钥文件不能具有组或“全局”权限。

因此,如果你运行这个命令(用实际路径替换),则应该没问题:

chmod 600 /path/to/keyfile

你还应确保密钥文件归属于与你运行mongod/mongos进程使用的用户相同的用户,否则设置上述权限将会导致错误(只有拥有该文件的用户可以使用600权限访问它)。


13
我发现了问题。Mongodb正在以mongodb用户身份运行,而该文件是由另一个用户创建的。使用chown mongodb keyFile解决了我的问题。 Adam,我按照教程做了,但是仍然无法读取文件。 现在一切都好了。 - SeVeNDuS
抱歉 - 我以为那是暗示。700 权限意味着只有文件的所有者才能访问它,因此该所有者需要与您用于运行 MongoDB 进程的所有者相同。我添加了一条注释以澄清给其他人看。 - Adam Comerford
2
600 是更正确的模式。 http://docs.mongodb.org/manual/tutorial/generate-key-file/#create-a-key-file - Sergey Telminov
截至今天,400是更正确的模式: https://docs.mongodb.com/manual/tutorial/enforce-keyfile-access-control-in-existing-replica-set/ - Dmitry Gusarov
我看到文档现在提到了400权限,但是如果不改变所有父目录的权限,从安全角度来看没有任何功能上的差异。只需要多运行一个命令就可以写入/覆盖文件 - 就这样。 - Adam Comerford
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接