根据日志信息,Elasticsearch 不能以 root 用户身份运行。这是出于安全原因,为了防止潜在的风险和漏洞。
要解决此问题,请使用非root用户或具有适当权限的用户来运行 Elasticsearch。您可以创建一个新用户并将其分配给 Elasticsearch 进程。
下面是一些步骤可以尝试:
创建一个名为
sonarqube的新用户(或任何其他合适的用户名):sudo adduser sonarqube将 SonarQube 文件夹的所有权更改为新创建的用户:
sudo chown -R sonarqube:sonarqube /usr/local/sonarqube-7.9.6在 SonarQube 启动脚本中设置使用该用户启动 Elasticsearch 进程。打开
/usr/local/sonarqube-7.9.6/elasticsearch/bin/elasticsearch脚本,并找到以下行:# Prevents the possibility of injecting a pre-built elasticsearch if [ "$(id -u)" = "0" ]; then echo "can not run elasticsearch as root" exit 1 fi注释掉上述代码段,使得启动脚本能够以 root 用户身份启动 Elasticsearch。修改后的代码如下:
# Prevents the possibility of injecting a pre-built elasticsearch # if [ "$(id -u)" = "0" ]; then # echo "can not run elasticsearch as root" # exit 1 # fi现在尝试重新启动 SonarQube,看看是否能够成功启动 Elasticsearch。
请注意,以 root 用户身份运行 Elasticsearch 可能会存在潜在的安全风险。因此,请确保采取适当的安全措施并限制对 Elasticsearch 的访问权限。
内容由零声教学AI助手提供,问题来源于学员提问




