如何将 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 -u
和 compgen -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?的主要内容,如果未能解决你的问题,请参考以下文章
EC2 Mod Rewrite 将 AllowOverRide None 更改为 All
AWS - 将所有文件的权限更改为 ec2-user 并且 wordpress 现在没有上传或拥有任何文件