У меня есть приложение node.js, работающее на ElasticBeanstalk. Часть его конфигурации - это путь к ключевому файлу .p12. Когда приложение пытается использовать ключевой файл, выдается исключение с отказом в разрешении.
У меня вопрос: размещаю ли я ключевой файл в лучшем месте с правильными разрешениями или есть другое место или разрешения, которые я должен использовать.
Приложение является пример сервера синтаксического анализа clone, который устанавливается в / var / app / current на сервере EB. Я поместил ключевой файл в /home/ec2-user/.ssh. Я попытался установить для ключевого файла права доступа 400, 644 и даже 777. В самом каталоге .ssh их 700. Я вижу следующую ошибку:
пример parse-server, работающий на порту 8081. /var/app/current/node_modules/parse-server/lib/ParseServer.js:339 throw err; ^
Ошибка: EACCES: в разрешении отказано, откройте '/home/ec2-user/.ssh/key.p12' с ошибкой (родной)
В итоге у меня сработало создание каталога для ключа .p12 и передача права владения каталогом и ключом пользователю nodejs.
sudo mkdir -p /etc/foo
sudo chown nodejs /etc/foo
sudo chmod 700 /etc/foo
sudo cp my_key.p12 /etc/foo
sudo chown nodejs /etc/foo/my_key.p12
sudo chmod 600 /etc/foo/my_key.p12
У меня тоже это получилось при попытке установить / запустить etherpad
Оказывается, дело не в перманентности файлов, а в директории более высокого уровня.
Если я сделаю это как root, я получу:
ls -l /etc/letsencrypt/live/domain/privkey.pem
lrwxrwxrwx 1 root root 42 May 20 13:03 /etc/letsencrypt/live/domain/privkey.pem -> ../../archive/domain/privkey1.pem
Но если я запустил ту же команду, что и etherpad
Мне отказали в разрешении.
Делать ls -ld
в каждом каталоге вверх показал, что live
имел разрешения rwx------
, то есть каталог нельзя было ни прочитать, ни перечислить.
chmod 755 /etc/letsencrypt/live /etc/letsencrypt/archive
Это решает проблему в моем случае. Ваш пробег может отличаться.