Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
データベース マニュアル
/ /

非ルート ユーザー権限の設定

データベースのセキュリティを維持するために、承認されたルート以外のユーザーの特権を制限して、完全なルート特権を付与せずに管理操作を実行できるようにすることができます。

このページでは、すべてのルートユーザー特権へのアクセスを許可せずに、ルート以外のユーザーがLinuxシステム上で mongod プロセスを開始、停止、再起動できるようにする方法を説明します。この手順は、mongod プロセスが実行されるグループとは異なる、ルート以外のLinuxグループに属するユーザーに適用されます。

MongoDB Community または MongoDB Enterprise をインストールします。

重要

次の手順では、セットアップに root アクセスが必要です。設定が正しくないと、システムが応答しなくなる可能性があるため、本番環境に実装する前には必ず開発環境でテストしてください。現在のデータのバックアップがあることを確認してください。

  • 新しいシステムを設定するときに、この手順を実行することをお勧めします。これが可能でない場合は、メンテナンスウィンドウ中に手順を実行します。

  • この手順は、1 つのローカル システムの設定にのみ影響します。レプリカセットまたはシャーディングされたクラスターを使用している場合は、この手順を順次実行します。すべてのノードを一度に更新しないでください。

  • この手順はすべての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 ユーザーとルートのみが mongod.confファイルにアクセスして編集する権限を持つようになります。

3

visual を使用して、sharders ファイルに次の構成行を追加します。

%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ファイルの構文エラーは、ルート ユーザー アカウントの機能に影響を与える可能性があります。

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 ユーザーとルートのみが mongod.confファイルにアクセスして編集する権限を持つようになります。

3

visual を使用して、次の構成行を sharders ファイルに追加します。

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ファイルの構文エラーは、ルート ユーザー アカウントの機能に影響を与える可能性があります。

4

これで、新しいユーザーは mongod サービスを開始して停止できますが、 /etc/mongod.confファイルを読み取ることはできません。

新しいユーザーに次のコマンドを実行して mongod を起動します。

sudo service mongod start

シェルで次の確認が表示されていることを確認します。

Starting mongod: [ OK ]

sudo service mongod stop を使用して同様のテストを実行すると、エラーなく mongod サービスを停止できることを確認できます。

ここで、/etc/mongod.confファイルにアクセスするために次のコマンドを実行するようにします。

sudo vi /etc/mongod.conf

このコマンドは [Permission Denied] メッセージを返します。

戻る

権限アクション

項目一覧