selinux вызывает «nexus.service: Failed на шаге создания EXEC / opt / nexus / bin / nexus: Permission denied» Fedora 26, nexus 3.06

Если я вас хорошо понимаю, ваш компьютер не может загрузиться из-за периодически возникающих лучей излучения, и вы хотите запустить свой компьютер между двумя из этих событий чтобы перейти к проверке.Итак, не имеет значения, что ваш компьютер в конечном итоге загрузится, не так ли?

Вы можете сделать это:

  • создать статическую программу (т. Е. Связанную статически, без зависимостей с библиотеками на диске)
  • поместите ее на свой initrd образ
  • в приглашении загрузки Linux (используйте меню grub , чтобы изменить его), добавьте init = / path / to / your / program

Ваша программа запустит вместо стандартного init , поэтому ваша машина больше не будет загружаться, но ваша программа будет работать.

Я надеюсь, что вам не понадобится ничего, предоставляемое стандартной установкой Linux (точки монтирования, кроме / , демоны, удаленный доступ, последовательная консоль и т. Д.), Потому что у вас не будет ничего из этого конечно, поскольку ваша система вообще не запускалась.

Обратите внимание, что если вам нужно, чтобы ваша машина загружалась нормально после вашего кода, вы, вероятно, можете exec / sbin / init в качестве последней инструкции.

2
08.10.2017, 22:53
4 ответа

Я должен предложить ответ после того, как потратил некоторое время на этот вопрос. У меня была такая же проблема, как указано выше. Моя ОС — RHEL 7.5 с SELinux, настроенным на принудительное выполнение. Версия Nexus: 3.13.0 -01.

Служба связи с systemd была определена как идентифицированная Сонатип. См. Инструкции Sonatype по запуску службы systemd здесь:https://help.sonatype.com/repomanager3/installation/run-as-a-service

Служба, использующая определение nexus.service с этой страницы, запускается, но в конечном итоге достигает тайм-аута и отключается. Тип службы разветвления Тип разветвления ожидает некоторое время завершения родительского процесса, но это событие, по-видимому, не происходит. Я не связывался с Sonatype, но, поскольку этот вопрос не обсуждался, я добавляю решение, которое сработало. Чтобы решить эту проблему, я изменил тип с forking на simple в файле nexus.service.

0
27.01.2020, 22:36

Также убедитесь, что /opt/nexus принадлежит пользователю nexus

Вот фрагмент кода, работающий согласно :/etc/systemd/system/nexus.service

[Unit]
Description=nexus service
After=network.target

[Service]
Type=simple
LimitNOFILE=65536
ExecStart=/opt/nexus-3.19.0-01/bin/nexus start
ExecStop=/opt/nexus-3.19.0-01/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target
0
27.01.2020, 22:36
semanage fcontext -a -t initrc_t   "/opt/nexus(/.*)?"
semanage fcontext -a -t initrc_exec_t   "/opt/nexus(/.*)?"
restorecon -R -v /opt/nexus > /dev/null
1
02.09.2020, 09:34

Чтобы исправить эту проблему, добавьте политику SELinux, чтобы разрешить Systemd доступ к двоичному файлу nexus по пути /app/nexus/bin/nexus с помощью следующей команды.

sudo chcon -R -t bin_t /opt/nexus/bin/nexus
1
28.10.2021, 14:13

Теги

Похожие вопросы