https://blog.csdn.net/lahand/article/details/78954112

如果以root身份运行将会出现以下问题,这个错误,是因为使用root用户启动elasticsearch,elasticsearch是不允许使用root用户启动的

[root@iZbp1epx1ncetamddfjnxwZ bin]# ./elasticsearch
[2018-01-02T17:42:42,296][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:125) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:85) ~[elasticsearch-6.1.1.jar:6.1.1]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:322) ~[elasticsearch-6.1.1.jar:6.1.1]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121) ~[elasticsearch-6.1.1.jar:6.1.1]
... 6 more

ES5之后[解决方法1],[解决办法2],已经不能用了,请使用[解决办法3],[解决办法4]

解决方法1:

在执行elasticSearch时加上参数-Des.insecure.allow.root=true,完整命令如下

  1. ./elasticsearch -Des.insecure.allow.root=true

解决办法2:

用vim打开elasicsearch执行文件,在变量ES_JAVA_OPTS使用前添加以下命令

  1. ES_JAVA_OPTS="-Des.insecure.allow.root=true"

如下图所示,这个方法的好处是以后不用添加参数就能以root身份执行了

解决办法3:

我们需要添加用户。

adduser ***   //添加用户

passwd ***  //给用户赋值

添加完用户之后:

用root用户执行 : chown -R 文件夹名 用户名

将这几个压缩包所在的文件夹及解压完的文件夹权限给你新建的用户。之后再使用新用户启动就OK了。

参考:https://www.cnblogs.com/yidiandhappy/p/7737003.html,http://blog.csdn.net/u010317005/article/details/52205825

解决办法4:

  • 如果是用root账号启动,会报以下错误

    Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root. at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:285) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35) Refer to the log for complete error details.
  • 这是出于系统安全考虑设置的条件。由于ElasticSearch可以接收用户输入的脚本并且执行,为了系统安全考虑, 
    建议创建一个单独的用户用来运行ElasticSearch

  • 创建elsearch用户组及elsearch用户

    1.  
      groupadd elsearch
    2.  
      useradd elsearch -g elsearch -p elasticsearch
  • 更改elasticsearch文件夹及内部文件的所属用户及组为elsearch:elsearch

    1.  
      cd /opt
    2.  
      chown -R elsearch:elsearch elasticsearch
  • 切换到elsearch用户再启动

    1.  
      su elsearch cd elasticsearch/bin
    2.  
      ./elasticsearch
  • 启动后打印信息如下

    1.  
      [2015-12-30 10:15:44,876][WARN ][bootstrap ] unable to install syscall filter: prctl(PR_GET_NO_NEW_PRIVS): Invalid argument
    2.  
      [2015-12-30 10:15:45,175][INFO ][node ] [Grim Hunter] version[2.1.1], pid[26383], build[40e2c53/2015-12-15T13:05:55Z]
    3.  
      [2015-12-30 10:15:45,176][INFO ][node ] [Grim Hunter] initializing ...
    4.  
      [2015-12-30 10:15:45,243][INFO ][plugins ] [Grim Hunter] loaded [], sites []
    5.  
      [2015-12-30 10:15:45,272][INFO ][env ] [Grim Hunter] using [1] data paths, mounts [[/ (/dev/mapper/vg_yong-lv_root)]], net usable_space [33.3gb], net total_space [49gb], spins? [no], types [ext4]
    6.  
      [2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] initialized
    7.  
      [2015-12-30 10:15:47,318][INFO ][node ] [Grim Hunter] starting ...
    8.  
      [2015-12-30 10:15:47,388][INFO ][discovery ] [Grim Hunter] elasticsearch/fnXUCLOQQBiC1aR7hhB82Q
    9.  
      [2015-12-30 10:15:50,442][INFO ][cluster.service ] [Grim Hunter] new_master {Grim Hunter}{fnXUCLOQQBiC1aR7hhB82Q}{127.0.0.1}{127.0.0.1:9300}, reason: zen-disco-join(elected_as_master, [0] joins received)
    10.  
      [2015-12-30 10:15:50,491][INFO ][node ] [Grim Hunter] started
    11.  
      [2015-12-30 10:15:50,526][INFO ][gateway ] [Grim Hunter] recovered [0] indices into cluster_state
ElasticSearch后端启动命令
./elasticsearch -d

ElasticSearch Root身份运行的更多相关文章

  1. Linux 曝出严重安全漏洞,受限用户亦可提权至 Root 身份运行任意命令!(内附解决方案)

    本文首发于:微信公众号「运维之美」,公众号 ID:Hi-Linux. 「运维之美」是一个有情怀.有态度,专注于 Linux 运维相关技术文章分享的公众号.公众号致力于为广大运维工作者分享各类技术文章和 ...

  2. Tomcat非root身份运行制作Linux系统服务管理

    理论知识怱略,马上开始实战 一.首先准备好tomcat 启动.关闭.重启Shell脚本: 以下Shell脚本主要修改值 tomcatPath:tomcat目录 runUser:以哪个身份运行 此处测试 ...

  3. deepin使用root身份运行

    https://blog.csdn.net/guanripeng/article/details/79630619

  4. ubuntu下apache2的cgi-bin中以root权限运行程序

    一,安装apache2 sudo apt-get install apache2 二.配置cgi-bin sudo chmod 777 /var/www/html sudo vim /etc/apac ...

  5. Linux 如何以管理员身份运行终端

    如何以管理员身份在终端执行指令: 目录 如何以管理员身份在终端执行指令: 1. 以sudo 指令在其他指令前加上sudo 2. 以su 进入root权限,以管理员方式执行命令 设置root初始密码: ...

  6. Centos7下配置Tomcat7以指定(非root)身份运行

    通常情况下,在配置Tomcat生产环境时,通常会配置Tomcat以特定的身份运行(非root),这样有利于提高安全性,防止网站被黑后的进一步权限提升. 本文依赖的环境: Ubuntu(其实大部分同样适 ...

  7. 麒麟系统使用root权限运行程序

    最近在虚拟机里安装了个国产麒麟系统.(不知道麒麟系统的百度下.) ************************************************** 官方网址:http://www. ...

  8. Linux 下以其他用户身份运行程序—— su、sudo、runuser

      本文综合分析了Linux系统下,如何使用runuser命令.su命令和sudo命令以其他用户身份来运行程序,以及这三个命令的运行效率比较. 一.su 命令临时切换用户身份 SU:( Switch ...

  9. Win7 下以管理员身份运行批处理文件,切换JDK版本

    Win7下 切换JDK的批处理命令 1. 批处理文件(必须以管理员身份执行)内容如下 @echo off rem --- Base Config 配置JDK的安装目录 --- :init set JA ...

随机推荐

  1. 【资料收集】OpenCV入门指南 系列文章

    <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 目录: 第一篇  安装OpenCV ...

  2. TensorFlow学习笔记——节点(constant、placeholder、Variable)

    一. constant(常量) constant是TensorFlow的常量节点,通过constant方法创建,其是计算图(Computational Graph)中的起始节点,是传入数据. 创建方式 ...

  3. (C/C++学习笔记) 二十三. 运行时类型识别

    二十三. 运行时类型识别 ● 定义 运行时类型识别(Run-time Type Identification, RTTI) 通过RTTI, 程序能够使用基类的指针或引用来检查(check)这些指针或引 ...

  4. Java内存模式

    Java内存模型即Java Memory Model,简称JMM.JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式. JVM是Java Virtual Machine(Java ...

  5. CPU的硬件结构和汇编语言

    (已更正) 这个问题包括CPU的硬件结构和汇编语言的范畴. 这里梳理一下. 首先, 题主"李建国"自问自答的部分说的是正确的, CPU的指令集是软件与CPU这两个层级之间的接口, ...

  6. python scrapy 数据处理时间格式转换

    def show(self,response): # print(response.url) title = response.xpath('//main/div/div/div/div/h1/tex ...

  7. java学习笔记23(Set接口)

    Set接口: 1.Set接口是不包含重复元素的Collection: 2.set集合没有索引,只能通过增强型for循环或迭代器来遍历: 3.Set接口只包含从collection接口继承的方法,并且增 ...

  8. HDU 4463 Outlets(最小生成树给坐标)

    Problem Description In China, foreign brand commodities are often much more expensive than abroad. T ...

  9. Set和Map数据结构

    1.Set ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 2.Map JavaScript 的对象 ...

  10. Web服务器使用基于纯文本表单的身份验证——.net(未完待续)

    asp.net 表单验证方式 Asp.net的身份验证有有三种,分别是"Windows | Forms| Passport",其中又以Forms验证用的最多,也最灵活. 根据实际需 ...