如何将EC2用户从ubuntu更改为mongodb?

时间:2016-07-04 11:50:26

标签: linux mongodb ssh amazon-ec2 ubuntu-14.04

在EC2上推出了Ubuntu 14.04 LTS微实例,在their official documentation之后安装了最新的MongoDB。当我运行sudo mongod --fork --dbpath /somedbpath --logpath /somelogpath后跟mongo时,

我收到警告,它不应该以root用户身份运行。我注意到安装过程创建了一个mongodb用户和组,我可以分别在compgen -ucompgen -g的输出中看到它们。我关闭了mongod服务器,甚至删除了dbpath目录中创建的所有文件。现在,我想将守护进程作为mongodb用户运行,因为我已经了解它具有最佳性能所需的所有适当权限和ulimits。

虽然如何从ubuntu切换到mongodb用户?我跑了sudo passwd mongodb并更新了密码。然后我尝试su mongodb,在提示时输入密码,但点击ENTER让我只以ubuntu登录。我尝试退出并重新登录。我在/ home下手动创建了mongodb目录,因为它不存在。我甚至在里面创建了一个.ssh目录,并从/home/ubuntu/.ssh复制了authorized_keys文件,看看我是否可以ssh -i pemfile mongodb@serveruri登录服务器但是它会抛出Permission denied (publickey).我倾向于遵循最佳实践,并希望能够将mongo守护进程作为mongodb启动。

3 个答案:

答案 0 :(得分:0)

以mangodb用户身份运行命令:

sudo -u mangodb mongod --fork --dbpath /somedbpath --logpath /somelogpath

答案 1 :(得分:0)

要解决这个问题,我必须更改数据目录(及其文件)和日志路径的权限,如下所示 -

cd /var/log
sudo chown -R mongodb:mongodb mongodb/

cd /
sudo chown -R mongodb:mongodb data/

然后我运行了与7171u的答案类似的命令,即

sudo -u mongodb mongod --fork --dbpath /data/ --logpath /var/log/mongodb/mongod.log

警告已经消失了!

答案 2 :(得分:0)

你自己解决了这个问题很好,但是你仍然不清楚这一点。

通过以下提到的链接,了解每个用户的角色。

http://www.cyberciti.biz/faq/understanding-etcpasswd-file-format/

mongod用户是没有主目录的用户,这就是为什么不是/ home,而且它也没有shell。检查你的/ etc / passwd文件中的mongod用户。

mongod:x:993:990:mongod:/var/lib/mongo:/bin/false

这是上述文件中mongod用户的默认条目。

其主目录是/ var / lib / mongo 它的外壳是假的。