搜尋

首頁  >  問答  >  主體

php - 如何指定使用者如'mongo'運行mongodb?

環境:Ubuntu 16.04
例如php-fpmnginx 使用的是www 使用者運行的,redis 使用的redis 用戶運行,到了mongodb這好像不能指定用戶,預設用root 用戶運行了,每次進mongo的時候都會警告

[initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.

#附上mongodb啟動腳本,能修改這個腳本達到指定使用者執行mongodb的目的嗎?

#!/bin/sh

### BEGIN INIT INFO
# Provides:     mongodb
# Required-Start:
# Required-Stop:
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description: mongodb
# Description: mongo db server
### END INIT INFO

. /lib/lsb/init-functions

PROGRAM=/usr/local/mongodb/bin/mongod
MONGOPID=`ps -ef | grep 'mongod' | grep -v grep | awk '{print }'`

test -x $PROGRAM || exit 0
case "" in
  start)
    ulimit -n 3000
    log_begin_msg "Starting MongoDB server"
    $PROGRAM -f /usr/local/mongodb/mongo.conf
    log_end_msg 0
    ;;
  stop)
    log_begin_msg "Stopping MongoDB server"
    if [ ! -z "$MONGOPID" ]; then
      kill -15 $MONGOPID
    fi
    log_end_msg 0                                                                                                                                                                                             
    ;;
  status)
    ;;
  *)
    log_success_msg "Usage: /etc/init.d/mongodb {start|stop|status}"
    exit 1
esac
exit 0
淡淡烟草味淡淡烟草味2742 天前675

全部回覆(3)我來回復

  • 迷茫

    迷茫2017-05-27 17:45:26

    這其實不是mongodb的問題了吧,應該算是Linux比較適合。至少可以使用sudo来指定用户:
    sudo -u mongo $PROGRAM -f /usr/local/mongodb/mongo.conf
    如果是用RPM安装,本身就带了init.d腳本,可以參考一下其中的做法,特別是裡面已經配置了禁用NUMA,也是需要注意的。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-27 17:45:26

    我不知道理解你的意思對不對,你想要對用戶授權登錄,這時候你只需要添加用戶並且mongod啟動時添加了--auth參數開啟登錄授權。這時候以預設方式登錄,即以無認證用戶登錄,查詢等操作的時候會被提示無權限。

        Thu May 25 06:01:27.522 listDatabases failed:{ "ok" : 0, "errmsg" : "unauthorized" } at src/mongo/shell/mongo.js:46

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-27 17:45:26

    考慮安全性,都是按權分配,需要多大的權限就分配多少權限,這個是linux安全基本原則。

    回覆
    0
  • 取消回覆