Docs 菜单
Docs 主页
/
数据库手册
/ /

配置非根用户权限

为了维护数据库安全,您可以限制授权的非 root 用户的权限,允许他们执行管理操作,而无需授予他们完全的 root 权限。

本页演示如何允许非 root 用户在Linux系统上启动、停止和重新启动 mongod 进程,而又不允许其访问权限所有 root 用户权限。此过程适用于属于非 root Linux群组的用户,该群组不同于运行 mongod进程的群组。

安装 MongoDB CommunityMongoDB Enterprise。

重要

以下过程需要 root访问权限才能设置。不正确的设置可能会导致系统无响应,因此在生产中实施之前,请务必在开发环境中进行测试。确保您有数据的最新备份。

  • 我们建议您在设置新系统时执行此过程。如果不可行,请在维护窗口期间执行该过程。

  • 此过程仅影响一个本地系统的设置。如果您使用的是副本集或分片集群,请滚动执行此过程。请勿一次更新所有节点。

  • 此过程适用于所有Linux发行版,但仅在CentOS 6/7、RHEL 6/7、 Ubuntu 18.04 和Amazon Linux 2 上进行了测试。

在下方选择您的系统提供商对应的标签页。

此过程适用于CentOS 7 和 RHEL 7。

1
adduser <user-name>
groupadd <group-name>
2

使用以下命令更新配置文件(位于 /etc/mongod.conf)中的权限:

sudo chown mongod:mongod /etc/mongod.conf
sudo chmod 600 /etc/mongod.conf
ls -l /etc/mongod.conf
-rw-------. 1 mongod mongod 330 Feb 27 18:43 /etc/mongod.conf

此配置可确保只有 mongod 用户和 root 有权访问权限和编辑 mongod.conf文件。

3

使用 visudo: 将以下配置行添加到 sudoers 文件:

%mongod ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service
%testuser ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service

注意

sudoers文件中的语法错误可能会影响 root 用户帐户的功能。

4

您的新用户现在可以启动和停止 mongod 服务,但无法读取 /etc/mongod.conf文件。

让新用户运行以下命令来启动 mongod 并确认他们没有收到 [Permission Denied] 消息:

sudo /bin/systemctl start mongod.service

他们可以使用 sudo /bin/systemctl stop mongod.service运行类似的测试,以确保可以正确停止 mongod 服务。

现在,让他们运行以下命令以尝试访问权限/etc/mongod.conf文件:

sudo vi /etc/mongod.conf

此命令应返回 [Permission Denied] 消息。

此过程适用于CentOS 6、RHEL 6、 Amazon Linux 2 和Ubuntu 18.04。

1
adduser <user-name>
groupadd <group-name>
2

使用以下命令更新配置文件(位于 /etc/mongod.conf)中的权限:

sudo chown mongod:mongod /etc/mongod.conf
sudo chmod 600 /etc/mongod.conf
ls -l /etc/mongod.conf
-rw-------. 1 mongod mongod 330 Feb 27 18:43 /etc/mongod.conf

此配置可确保只有 mongod 用户和 root 有权访问权限和编辑 mongod.conf文件。

3

使用 visudo 将以下配置行添加到 sudoers 文件中。

对于CentOS 6、RHEL 6 和Amazon Linux 2:

%mongod ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart
%testuser ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart

For Ubuntu 18.04:

%mongod ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart
%testuser ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart

注意

sudoers文件中的语法错误可能会影响 root 用户帐户的功能。

4

您的新用户现在可以启动和停止 mongod 服务,但无法读取 /etc/mongod.conf文件。

让新用户运行以下命令来启动 mongod

sudo service mongod start

确保他们在Shell中收到以下确认:

Starting mongod: [ OK ]

他们可以使用 sudo service mongod stop运行类似的测试,以确保可以正确停止 mongod 服务。

现在,让他们运行以下命令以尝试访问权限/etc/mongod.conf文件:

sudo vi /etc/mongod.conf

此命令应返回 [Permission Denied] 消息。

后退

特权操作

在此页面上