环境:Ubuntu 16.04
比如 php-fpm
和 nginx
使用的是 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
这其实不是mongodb的问题了吧,应该算是Linux更合适些。至少可以使用
sudo
来指定用户:sudo -u mongo $PROGRAM -f /usr/local/mongodb/mongo.conf
如果是用RPM安装,本身就带了
init.d
脚本,可以参考一下其中的做法,特别是里面已经配置了禁用NUMA,也是需要注意的。我不知道理解你的意思对不对,你想要对用户授权登录,这时候你只需要添加用户并且mongod启动时添加了--auth参数开启登录授权。这时候以默认方式登录,即以无认证用户登录,查询等操作的时候会被提示无权限。
考虑安全性,都是按权分配,需要多大的权限就分配多少权限,这个是linux安全基本原则。