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

Posted

技术标签:

【中文标题】如何将 EC2 用户从 ubuntu 更改为 mongodb?【英文标题】:How do I change EC2 user from ubuntu to mongodb? 【发布时间】:2016-11-06 03:31:39 【问题描述】:

在 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 用户身份运行守护进程,因为我了解到它具有最佳性能所需的所有适当权限和 ulimit。

但是,我如何从 ubuntu 切换到 mongodb 用户?我跑了sudo passwd mongodb 并更新了密码。然后我尝试了su mongodb,在出现提示时输入了密码,但按回车键让我只以 ubuntu 身份登录。我尝试注销并重新登录。我在 /home 下手动创建了 mongodb 目录,因为它不存在。我什至在其中创建了一个 .ssh 目录,并从 /home/ubuntu/.ssh 复制了 authorized_keys 文件,看看我是否可以通过ssh -i pemfile mongodb@serveruri 登录服务器,但它会抛出Permission denied (publickey). 我倾向于遵循最佳实践并且希望能够以 mongodb 的形式启动 mongo 守护进程。

【问题讨论】:

【参考方案1】:

为了解决这个问题,我不得不更改数据目录(及其文件)和日志路径的权限,就像这样 -

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】:

以 mangodb 用户的身份运行命令:

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

【讨论】:

感谢您与我们联系。我回答了我自己的问题来描述我必须运行的步骤。【参考方案3】:

你自己解决了就好了,但是你还是不清楚。

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

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

mongod 用户是没有主目录的用户,所以没有 /home,它也没有 shell。检查 mongod 用户的 /etc/passwd 文件。

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

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

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

【讨论】:

以上是关于如何将 EC2 用户从 ubuntu 更改为 mongodb?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Amazon EC2 中设置时区?

EC2 Mod Rewrite 将 AllowOverRide None 更改为 All

如何将数据库从单用户模式更改为多用户模式

AWS - 将所有文件的权限更改为 ec2-user 并且 wordpress 现在没有上传或拥有任何文件

Ubuntu:将路径从 OpenJDK 6 更改为 Oracle JDK 7

当用户在表格视图中向下滚动时,如何将 UINavigationBar 背景颜色从透明更改为红色