我试图在Ubuntu 14.04上重启(它正在运行)MongoDB,但在日志error getting file /srv/mongodb/keyfile: Permission denied
此处的目录结构
drwxr-xr-x 3 root root 4096 Jan 31 05:54 srv/
drw------- 2 mongodb mongodb 4096 Jan 31 07:07 mongodb/
-rw------- 1 mongodb mongodb 876 Jan 31 07:07 keyfile
运行mongod
的用户是" mongodb",group" mongodb"所以应该可以阅读。
如果我将mongodb/
和keyfile
的权限更改为-rw-r--r--
,那么它就变得可读了,但mongo声称它过于宽容了
已经用这个东西去煮饭了。有什么建议这里有什么问题吗?
答案 0 :(得分:8)
之前我遇到过同样的问题,我发现并且未记录的解决方案与上下文有关。如果您在Linux中尝试:
select * from v$option where parameter='Partitioning';
PARAMETER
----------------------------------------------------------------
VALUE
----------------------------------------------------------------
Partitioning
FALSE
这将显示在列表中,所有文件,人类可读的大小和上下文的Z,我注意到keyFile必须有" system_u:object_r:mongod_var_lib_t:s0"上下文,所以它得到修复:
ls -lahZ
希望有所帮助!!
答案 1 :(得分:1)
除了对目录的读写权限外,通常还必须具有执行权限(http://en.wikipedia.org/wiki/File_system_permissions#Permissions处的更多信息)。因此,您必须设置以下权限:
chmod 700 /srv/mongodb/
chmod 600 /srv/mongodb/keyfile
答案 2 :(得分:0)
由于这里的答案都没有解决我的问题,而且我确实遇到了同样的问题,我会尝试发布对我有用的内容。
我的解决方案:
mongod.conf
并临时注释掉属性keyFile: /path/to/key
sudo chown mongod </path/to/key>
sudo chmod 400 </path/to/key>
KeyFile
mongod.conf
属性中删除评论
希望这有帮助
答案 3 :(得分:0)
我通过将密钥文件的所有者更改为mongod来使mongod服务正常工作
sudo chown mongod:mongod mongodb.key
mongod进程的所有者是尝试访问文件的mongod