以root用户身份运行ElasticSearch

44

当我尝试使用./elasticsearch启动ElasticSearch 5.0时,出现以下错误:

[2016-11-23T13:44:09,507][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:116) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:103) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:96) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.cli.Command.main(Command.java:62) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:80) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:73) ~[elasticsearch-5.0.1.jar:5.0.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
    at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:96) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:155) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:286) ~[elasticsearch-5.0.1.jar:5.0.1]
    at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:112) ~[elasticsearch-5.0.1.jar:5.0.1]
    ... 6 more

我切换到另一个用户尝试使用sudo ./elasticsearch命令,但是遇到了相同的错误。

我该如何以root用户身份启动ElasticSearch?


第二行:java.lang.RuntimeException: 无法以root身份运行elasticsearch。稍后再次出现:Caused by: java.lang.RuntimeException: 无法以root身份运行elasticsearch - Gavin
12个回答

0

在CentOS 8上,

adduser elasticuser
chown -R elasticuser:elasticsearch /usr/share/elasticsearch/
chown -R elasticuser:elasticsearch /etc/sysconfig/elasticsearch
chown -R elasticuser:elasticsearch /etc/elasticsearch
chown -R elasticuser:elasticsearch /var/log/elasticsearch/
chown -R elasticuser:elasticsearch /var/lib/elasticsearch

运行 Elasticsearch:

su elasticuser
/usr/share/elasticsearch/bin/elasticsearch

0

-Ees.insecure.allow.root 方法在我的版本7.9.0上无效。

我也懒得使用 @Devasish 提到的 chown 方法。

相反,我试了一个有点冗长的方法:

为 ElasticSearch 创建一个非根用户:

ubuntu ~ # adduser elasticuser

必须使用adduser命令,而不是useradd。 adduser将自动创建主目录。

将elastic-search文件夹从根目录的主目录复制到elasticuser的主目录:

ubuntu ~ # cp -R ./elasticsearch-7.9.0 /home/elasticuser/elasticsearch-7.9.0

切换到非root用户:

ubuntu ~ # su - elasticuser

现在,以非root用户身份运行Elasticsearch:

elasticuser@ubuntu ~ $ ./elasticsearch-7.9.0/bin/elasticsearch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接