linux - 使用 CentOS 使用 Elasticsearch keystore 时出现权限问题?

标签 linux elasticsearch centos

我是一个 Linux 菜鸟,我试图了解为什么我在 sudo 时遇到权限错误。我正在 Virtual Box VM 中的 CentOS 7 上使用 Vagrant。

我正在尝试为 elasticsearch 设置初始引导密码。我正在尝试使用以下命令而不是交互模式来执行此操作,因为我希望能够将命令添加到 ansible 游戏中。

当我以当前用户或使用 sudo 运行命令时

sudo printf "topsecret" | /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password"

我收到以下错误:
Enter value for bootstrap.password: ERROR: unable to create temporary keystore at [/etc/elasticsearch/elasticsearch.keystore.tmp], please check filesystem permissions

二进制文件的权限:
-rwxrw-r-x. 1 elasticsearch elasticsearch     1954 Oct 28 20:55 elasticsearch
-rwxrw-r-x. 1 elasticsearch elasticsearch      491 Oct 28 20:45 elasticsearch-certgen
-rwxrw-r-x. 1 elasticsearch elasticsearch      483 Oct 28 20:45 elasticsearch-certutil
-rwxrw-r-x. 1 elasticsearch elasticsearch      982 Oct 28 20:55 elasticsearch-cli
-rwxrw-r-x. 1 elasticsearch elasticsearch      433 Oct 28 20:45 elasticsearch-croneval
-rwxrw-r-x. 1 elasticsearch elasticsearch     2149 Oct 28 20:55 elasticsearch-env
-rwxrw-r-x. 1 elasticsearch elasticsearch      121 Oct 28 20:55 elasticsearch-keystore
-rwxrw-r-x. 1 elasticsearch elasticsearch      440 Oct 28 20:45 elasticsearch-migrate
-rwxrw-r-x. 1 elasticsearch elasticsearch      126 Oct 28 20:55 elasticsearch-node
-rwxrw-r-x. 1 elasticsearch elasticsearch      172 Oct 28 20:55 elasticsearch-plugin
-rwxrw-r-x. 1 elasticsearch elasticsearch      431 Oct 28 20:45 elasticsearch-saml-metadata
-rwxrw-r-x. 1 elasticsearch elasticsearch      438 Oct 28 20:45 elasticsearch-setup-passwords
-rwxrw-r-x. 1 elasticsearch elasticsearch      118 Oct 28 20:55 elasticsearch-shard
-rwxrw-r-x. 1 elasticsearch elasticsearch      427 Oct 28 20:45 elasticsearch-sql-cli
-rwxrw-r-x. 1 elasticsearch elasticsearch 19028621 Oct 28 20:45 elasticsearch-sql-cli-7.4.2.jar
-rwxrw-r-x. 1 elasticsearch elasticsearch      426 Oct 28 20:45 elasticsearch-syskeygen
-rwxrw-r-x. 1 elasticsearch elasticsearch      426 Oct 28 20:45 elasticsearch-users
-rwxrw-r-x. 1 elasticsearch elasticsearch      346 Oct 28 20:45 x-pack-env
-rwxrw-r-x. 1 elasticsearch elasticsearch      354 Oct 28 20:45 x-pack-security-env
-rwxrw-r-x. 1 elasticsearch elasticsearch      353 Oct 28 20:45 x-pack-watcher-env

/etc/elasticsearch 目录的权限:
-rwxrw-r-x. 1 root elasticsearch   232 Nov 13 01:03 elasticsearch.keystore
-rwxrw-r-x. 1 root elasticsearch  3110 Nov 12 23:20 elasticsearch.yml
-rwxrw-r-x. 1 root elasticsearch  2915 Nov 12 07:26 elasticsearch.yml.j2
-rwxrw-r-x. 1 root elasticsearch  3691 Nov 12 08:46 jvm.options
-rwxrw-r-x. 1 root elasticsearch 17545 Oct 28 20:55 log4j2.properties
-rwxrw-r-x. 1 root elasticsearch   473 Oct 28 20:55 role_mapping.yml
-rwxrw-r-x. 1 root elasticsearch   197 Oct 28 20:55 roles.yml
-rwxrw-r-x. 1 root elasticsearch     0 Oct 28 20:55 users
-rwxrw-r-x. 1 root elasticsearch     0 Oct 28 20:55 users_roles

我知道如果我跑
sudo -i

然后运行我的命令我没有收到错误。
printf "topsecret" | /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password"

我想了解为什么 sudo -i 有效但 sudo 无效?
是否可以运行此命令而不必使用 sudo -i

我已遵循此处的建议,但并没有改变结果:

[无法创建临时 keystore ][1]

[在此处输入链接描述][2]

如果您需要更多信息,请告诉我。

最佳答案

我能够解决这个问题。

当我运行时

sudo printf "topsecret" | /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password"
printf "topsecret"正在使用 sudo 和 /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password" 执行作为普通用户执行。

我将命令更改为以下命令,它以 sudo 执行子 shell。
sudo bash -c 'printf "topsecret" | /usr/share/elasticsearch/bin/elasticsearch-keystore add "bootstrap.password"'

关于linux - 使用 CentOS 使用 Elasticsearch keystore 时出现权限问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58829151/

相关文章:

linux - 从文件夹中选取最新文件

linux - IMUL指令寄存器

apache - SSL Apache,端口 443 正在使用中

docker - 与 Telefonica/协调器有关的问题

linux - 使用 Meson 构建 CUDA 内核

python - 使用 Python 拆分 ps 的输出

elasticsearch - elasticsearch查询字符串格式

python-3.x - 如何遍历索引字段以添加来自另一个索引的字段

java - 如何在elasticsearch中为动态字段创建动态映射

php - VestaCP smtp 不工作。无法连接到 Smtp 服务器