0

GCEインスタンスで実行するようにMongoを設定しました。Google Compute Engineインスタンスの起動時にmongoDBを実行する

最初に私は/で働いていたとsudo mongodとモンゴを起動するが、合理的にそれはそのことについて、いくつかの警告を出力します。

警告:あなたは推奨されないrootユーザー、 として、このプロセスを実行しています。

私はすべてを/home/my_google_accountに移動しました。ちょうどSSHに入り、mongodを実行できます。

の起動時に実行されるmongodなどのアクションがあります。私の理解から、これを行うための正しい方法はGoogle startup scriptsを使用することです:コンソールからあなたは、メタデータのキーと値のペアとして、以下のようなスクリプトを提供することができます:

#! /bin/bash 
apt-get update 
mongod -f /home/my_google_account/mongod.conf 

それはを動作しますが、Googleが言うように、これは、rootとして実行されます。

インスタンスは常にルートとして起動スクリプトを実行し、それがそのSSHキー インスタンスメタデータに含まれているすべての新しいユーザーを作成した後にのみ は、それらのスクリプトを実行します。

だから、のmongodプロセスはroot権限で実行され、私はまだ私がもともと持っていた警告を取得:

警告:あなたは推奨されないrootユーザー、 として、このプロセスを実行しています。

どうすればよいですか?

スタートアップスクリプトをルートとして実行できない方法はありますか? とsudoで作業し、警告を一切無視する必要がありますか? あなたのユーザのホームフォルダで作業し、必要な権限を取得し、あなたの権限でmongodを実行すべきだと誰もが示唆しているようです。しかし、起動スクリプトはrootとして実行されます!

答えて

0

ことは、これを試してください - あなたの永続ディスクにユーザーを追加 -

useradd -ms /bin/bash mongouser 
#replace /data/db with your data location 
chown -R mongouser /data/db 

apt-get update 
sudo mongouser -c 'mongod -f /home/my_google_account/mongod.conf' 
+0

あなたstarupスクリプトにこれを追加し、あなたの答えをいただき、ありがとうございます。私はあなたがこれについて私の心をクリアできることを願っています。私は実際に私のmongoビルド(percona.comから)が 'mongod'グループの' mongod'ユーザをすでに作成していることに気づきました。それは何のためにあるのです?私はそれを使用するはずです(例えば 'sudo mongod -c 'mongod -f mongod.conf')? – natario

+0

おそらくそれはmongoを実行するためのものです。非標準のパッケージビルドを使用している場合は、あなたのビルドによってmongoデータディレクトリが 'mongod'ユーザに 'chown'されるかもしれないと思います。どのユーザー/グループが/ data/dbディレクトリを所有しているかを確認してください(すでにrootのようにmongoを起動し、ps -eaf | grep mongoを実行してmongoデータディレクトリが--dbpath設定であるか、/ homeを調べます)。 /my_google_account/mongod.confの場所)。あなたはmongodまたはデータディレクトリを所有している限り任意のユーザーを使用することができます...そして正しいと答えをマークしてください;-) – steveinatorx

関連する問題