# Logstash keystore Permisson denied

**URL:** <https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590>\
**Category:** Logstash\
**Created:** [January 2, 2020, 3:06pm UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590 "2020-01-02T15:06:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![zeleznypa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zeleznypa/32/42499_2.png) [@zeleznypa](https://discuss.elastic.co/u/zeleznypa)\
**Post date:** [January 2, 2020, 3:06pm UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/1 "2020-01-02T15:06:18Z")

</div>

We have configured smb shared folder between elastic stack servers, that contain the logstash.keystore file.

This storage is mounted in for example /mnt/elastic folder

the file /mnt/elastic/logstash.keystore is symlinked into /etc/logstash/logstash.keystore and for sure also into /usr/share/logstash/config/logstash.keystore.

The environment variables are setuped.

When i run following command, It works well:

```bash
./bin/logstash-keystore list

```

When I try to remove not existing key, it also properly detect, that key does not exists

But when I try to add a new key, it fail for following error:

```bash
ERROR] 2020-01-02 15:58:33.245 [main] secretstorecli - Error while trying to store secret urn:logstash:secret:v1:new_key {:cause=>java.io.IOException: Permission denied, :backtrace=>["org.logstash.secret.store.backend.JavaKeyStore.persistSecret(org/logstash/secret/store/backend/JavaKeyStore.java:318)", "org.logstash.secret.cli.SecretStoreCli.add(org/logstash/secret/cli/SecretStoreCli.java:169)", "org.logstash.secret.cli.SecretStoreCli.command(org/logstash/secret/cli/SecretStoreCli.java:104)", "java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)", "org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:425)", "org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:292)", "RUBY.<class:SecretStoreCli>(/usr/share/logstash/lib/secretstore/cli.rb:35)", "RUBY.<main>(/usr/share/logstash/lib/secretstore/cli.rb:16)", "org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:889)", "org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:893)", "org.jruby.Ruby.runNormally(org/jruby/Ruby.java:782)", "org.jruby.Ruby.runNormally(org/jruby/Ruby.java:795)", "org.jruby.Ruby.runFromMain(org/jruby/Ruby.java:607)", "org.jruby.Main.doRunFromMain(org/jruby/Main.java:412)", "org.jruby.Main.internalRun(org/jruby/Main.java:304)", "org.jruby.Main.run(org/jruby/Main.java:234)", "org.jruby.Main.main(org/jruby/Main.java:206)"]}

```

I have tried almost everything:  
User: logstash or elastic  
Group: elastic  
mask: 600, 660, 666

What can I do more?

---

<div class="post-metadata">

**Author:** ![Rob\_wylde](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/rob_wylde/32/58231_2.png) [@Rob\_wylde](https://discuss.elastic.co/u/Rob_wylde)\
**Post date:** [January 5, 2020, 4:47am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/2 "2020-01-05T04:47:14Z")

</div>

on the logstash server are you able to

`sudo -Hu logstash touch /mnt/elastic/delete_me` ?

---

<div class="post-metadata">

**Author:** ![zeleznypa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zeleznypa/32/42499_2.png) [@zeleznypa](https://discuss.elastic.co/u/zeleznypa)\
**Post date:** [January 6, 2020, 6:56am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/3 "2020-01-06T06:56:17Z")

</div>

Yes 🙂

---

<div class="post-metadata">

**Author:** ![zeleznypa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zeleznypa/32/42499_2.png) [@zeleznypa](https://discuss.elastic.co/u/zeleznypa)\
**Post date:** [January 6, 2020, 7:01am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/4 "2020-01-06T07:01:20Z")

</div>

When I temporarly move the original file elsewhere and tried to create a new keystore file, it fail on the following error

```bash
[ERROR] 2020-01-06 07:58:30.124 [main] secretstorecli - Error while trying to create the Logstash keystore. {:cause=>java.nio.file.FileAlreadyExistsException:
/usr/share/logstash/config/logstash.keystore, :backtrace=>["org.logstash.secret.store.backend.JavaKeyStore.create(org/logstash/secret/store/backend/JavaKeyStore.java:101)", "org.logstash.secret.store.backend.JavaKeyStore.create(org/logstash/secret/store/backend/JavaKeyStore.java:40)", "org.logstash.secret.store.SecretStoreFactory.doIt(org/logstash/secret/store/SecretStoreFactory.java:111)", "org.logstash.secret.store.SecretStoreFactory.create(org/logstash/secret/store/SecretStoreFactory.java:75)", "org.logstash.secret.cli.SecretStoreCli.deleteThenCreate(org/logstash/secret/cli/SecretStoreCli.java:188)", "org.logstash.secret.cli.SecretStoreCli.create(org/logstash/secret/cli/SecretStoreCli.java:182)", "org.logstash.secret.cli.SecretStoreCli.command(org/logstash/secret/cli/SecretStoreCli.java:67)", "java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)", "org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:425)", "org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:292)", "RUBY.<class:SecretStoreCli>(/usr/share/logstash/lib/secretstore/cli.rb:35)", "RUBY.<main>(/usr/share/logstash/lib/secretstore/cli.rb:16)", "org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:889)",
"org.jruby.Ruby.runInterpreter(org/jruby/Ruby.java:893)", "org.jruby.Ruby.runNormally(org/jruby/Ruby.java:782)", "org.jruby.Ruby.runNormally(org/jruby/Ruby.java:795)", "org.jruby.Ruby.runFromMain(org/jruby/Ruby.java:607)", "org.jruby.Main.doRunFromMain(org/jruby/Main.java:412)", "org.jruby.Main.internalRun(org/jruby/Main.java:304)", "org.jruby.Main.run(org/jruby/Main.java:234)", "org.jruby.Main.main(org/jruby/Main.java:206)"]}

```

It seems like the logstash is not able to work with symlinks..

---

<div class="post-metadata">

**Author:** ![zeleznypa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zeleznypa/32/42499_2.png) [@zeleznypa](https://discuss.elastic.co/u/zeleznypa)\
**Post date:** [January 6, 2020, 7:20am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/5 "2020-01-06T07:20:25Z")

</div>

When I remove the symlink and move the original file to the destination with exactly same user/group/rights, it's working well

---

<div class="post-metadata">

**Author:** ![zeleznypa](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/zeleznypa/32/42499_2.png) [@zeleznypa](https://discuss.elastic.co/u/zeleznypa)\
**Post date:** [January 6, 2020, 7:40am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/6 "2020-01-06T07:40:59Z")

</div>

So the temporary hotfix is

```bash
rm /usr/share/logstash/config/logstash.keystore
cp /mnt/elastic/logstash.keystore /usr/share/logstash/config/logstash.keystore
 
# Manipulation with the .keystore file
 
mv -f /mnt/elastic/logstash.keystore /mnt/elastic/logstash.keystore.old
cp /usr/share/logstash/config/logstash.keystore /mnt/elastic/logstash.keystore # When its done by mv comand, it failed on "mv: preserving times for '/mnt/elastic_ks/logstash.keystore': Operation not permitted" :)
rm /usr/share/logstash/config/logstash.keystore
ln -s /mnt/elastic/logstash.keystore /usr/share/logstash/config/logstash.keystore
 
# Check thru ./bin/logstash-keystore list that everything works well
 
rm -f /mnt/elastic/logstash.keystore.old

```

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [February 3, 2020, 7:41am UTC](https://discuss.elastic.co/t/logstash-keystore-permisson-denied/213590/7 "2020-02-03T07:41:15Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
