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. python学习 面向对象高级编程

    ---恢复内容开始--- 面向对象编程---oop,是一种编程思想,oop把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数 ...

  2. Java 安装后的检测是否安装成功

    下载安装JDK(Java SE development Kit) Java是有sun公司发行的编程语言,JDK的官方下载地址为:http\\ java.sun.com 昨天选择下载的是jdk-8u10 ...

  3. Java 将图片转成base64,传到前台展示

    后台代码: public String getBase64(SysFile sysFile){ String imgStr = ""; try { File file = new ...

  4. 在JS文件中,不需要<script>标签

    在JS文件中,不需要<script>标签\

  5. 了解下webpack的几个命令

    [ webpack3.0.0刚刚出来  所以文章是跟着低版本 教程 操作熟悉  结果好多对不上喔] 六:了解下webpack的几个命令 webpack         // 最基本的启动webpack ...

  6. 20165326 Linux系统安装及学习

    Linux安装及学习 一.系统安装 此处选取安装的材料:LInux5.2.6 & ubuntu16.04.03 linux的安装:十分顺利,从官网选取了最新版本,根据图文步骤安装成功. ubu ...

  7. day 68 增删改查 语法

    1 普通正则 2 分组正则 url(r'/blog/(\d+)/(\d+)',views.blog)     blog(request,arq1,arq2) 按照位置传参 3 分组命名 url(r'/ ...

  8. day 34 进程线程排序 抢票 初级生产者消费者

    # 实现的内容 模拟购票 20个人买,就有一张购票查,的时候大家都看到,但是购买只能一人购买成功#利用互斥锁# from multiprocessing import Process,Lock# im ...

  9. MySql笔记之数据备份与还原

    MySQL数据备份.还原与迁移 一.数据备份------mysqldump 1.语法: mysqldump -u user(用户名)-h host(登录用户的主机名称)-p password(登录密码 ...

  10. svn+http+ad域

    svn本地添加用户太麻烦了,如果公司有一百个开发人员要访问,要创建账号密码太麻烦了:所以让他们用AD域账号去登录就很方便,但是权限的管控还是在svn的本地添加(这个暂时还没办法很好的解决) 一.安装依 ...